
nginx
文章平均质量分 81
LceChan
这个作者很懒,什么都没留下…
展开
-
nginx源代码获取
首先加入源代码所在网站的源For Ubuntu replace codename with Ubuntu distribution codename, and append the following to the end of the/etc/apt/sources.list file:deb http://nginx.org/packages/ubuntu/ codename原创 2013-03-19 23:21:40 · 1207 阅读 · 0 评论 -
Nginx启动框架处理流程
转自:http://blog.youkuaiyun.com/xiajun07061225/article/details/9309273Nginx启动过程流程图下面首先给出Nginx启动过程的流程图:ngx_cycle_t结构体Nginx的启动初始化在src/core/nginx.c的main函数中完成,当然main函数是整个Nginx的入口,除转载 2013-07-23 22:37:54 · 866 阅读 · 0 评论 -
nginx源码分析—队列结构ngx_queue_t
队列实现文件:文件:./src/core/ngx_queue.h/.cngx_queue_t容器的优势在于:实现了排序功能它非常轻量级,是一个纯粹的双向链表,它不负责链表元素所占内存的分配,与Nginx封装的ngx_pool_t内存池完全无关支持两个链表间的合并1.基本数据结构typedef struct ngx_queue_s ngx_queue_t;struct原创 2013-04-25 00:27:45 · 1223 阅读 · 0 评论 -
nginx源码分析—数组结构ngx_array_t
数组实现文件:文件:./src/core/ngx_array.h/.c1.数组结构struct ngx_array_s { void *elts; //数组数据区起始位置 ngx_uint_t nelts; //实际存放的元素个数 size_t size; //每个元素的大小 ngx_ui原创 2013-04-23 23:25:19 · 956 阅读 · 0 评论 -
Nginx源码分析-内存池
转自:http://www.alidata.org/archives/1390Nginx的内存池实现得很精巧,代码也很简洁。总的来说,所有的内存池基本都一个宗旨:申请大块内存,避免“细水长流”。一、创建一个内存池nginx内存池主要有下面两个结构来维护,他们分别维护了内存池的头部和数据部。此处数据部就是供用户分配小块内存的地方。//该结构用来维护内存池的数据块,供用转载 2013-04-15 23:30:24 · 887 阅读 · 0 评论 -
nginx源码分析—链表结构ngx_list_t
链表实现文件:文件:./src/core/ngx_list.h/.c1.基本数据结构typedef struct ngx_list_part_s ngx_list_part_t;struct ngx_list_part_s { void *elts; ngx_uint_t nelts; ngx_list_part_t *原创 2013-04-24 00:14:08 · 1267 阅读 · 0 评论 -
深入理解ngx_align_ptr宏
在 core/ngx_config.h 里面#ifndef NGX_ALIGNMENT#define NGX_ALIGNMENT sizeof(unsigned long) /* platform word */#endif#define ngx_align(d, a) (((d) + (a - 1)) & ~(a - 1))#define ngx_align_pt原创 2013-04-23 22:07:03 · 3247 阅读 · 0 评论 -
ngx_palloc.c函数分析
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */#include #include static void *ngx_palloc_block(ngx_pool_t *pool, size_t size);static void *ngx_palloc_large(ngx_pool_t *pool, siz原创 2013-04-22 22:24:45 · 1219 阅读 · 0 评论 -
Nginx内存池结构ngx_pool_t及内存管理
nginx内存管理相关文件(1) ./src/os/unix/ngx_alloc.h/.c (详见:ngx_alloc.c函数分析)内存相关的操作,封装了最基本的内存分配函数如free/malloc/memalign/posix_memalign,分别被封装为ngx_free,ngx_alloc/ngx_calloc, ngx_memalignngx_allo原创 2013-04-15 23:50:18 · 916 阅读 · 0 评论 -
ngx_alloc.c函数分析
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */#include #include ngx_uint_t ngx_pagesize;ngx_uint_t ngx_pagesize_shift;ngx_uint_t ngx_cacheline_size;void *ngx_alloc(size原创 2013-04-22 22:18:42 · 1194 阅读 · 0 评论 -
内存分配相关
1. 系统功能封装内存相关的操作主要在 os/unix/ngx_alloc.{h,c} 和 core/ngx_palloc.{h,c} 下其中 os/unix/ngx_alloc.{h,c} 封装了最基本的内存分配函数,是对c原有的malloc/free/memalign 等原有的函数的封装,对应的函数为:ngx_alloc 使用malloc分配内存空间ngx_calloc 使用m原创 2013-04-10 23:19:07 · 710 阅读 · 0 评论 -
ngx_string.c
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */#include #include static u_char *ngx_sprintf_num(u_char *buf, u_char *last, uint64_t ui64, u_char zero, ngx_uint_t hexadecima翻译 2013-04-10 01:04:34 · 2390 阅读 · 0 评论 -
nginx字符串的数据类型的表示
nginx对c语言的字符串类型进行了简单的封装, core/ngx_string.h/c 里面包含这些封装的内容其中定义了 ngx_str_t ,ngx_keyval_t, ngx_variable_value_t这几个基础类型的定义如下typedef struct { size_t len; u_char *data;} ngx_str_t;原创 2013-04-10 00:09:21 · 1213 阅读 · 0 评论 -
nginx简单的数据类型的表示
在 core/ngx_config.h 目录里面定义了基本的数据类型的映射,大部分都映射到c语言自身的数据类型typedef intptr_t ngx_int_t;typedef uintptr_t ngx_uint_t;typedef intptr_t ngx_flag_t;其中 ngx_int_t, nginx_flag_t, 都映射为原创 2013-04-10 00:05:17 · 1264 阅读 · 0 评论 -
nginx 代码的目录结构
解开nginx的代码后,在src目录下发现有如下的几个目录core event http mail misc os其中 :core : 该目录存放core module的代码,也是nginx服务的入口http : http core module 的代码,nginx作为web/http proxy server运行时的核心模块mail : mail core module原创 2013-04-09 23:49:33 · 1460 阅读 · 0 评论 -
Nginx模块开发实战
转自:http://blog.codinglabs.org/articles/intro-of-nginx-module-development.html下面本文展示一个简单的Nginx模块开发全过程,我们开发一个叫echo的handler模块,这个模块功能非常简单,它接收“echo”指令,指令可指定一个字符串参数,模块会输出这个字符串作为HTTP响应。例如,做如下配置:locat转载 2013-04-09 00:25:28 · 985 阅读 · 0 评论 -
Nginx模块工作原理概述
(Nginx本身支持多种模块,如HTTP模块、EVENT模块和MAIL模块,本文只讨论HTTP模块)Nginx本身做的工作实际很少,当它接到一个HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个location block,而此location中所配置的各个指令则会启动不同的模块去完成工作,因此模块可以看做Nginx真正的劳动工作者。通常一个location中的指令会涉及一个hand转载 2013-04-09 00:22:16 · 1027 阅读 · 0 评论 -
Nginx在Linux下的安装与运行
转自 http://blog.codinglabs.org/articles/intro-of-nginx-module-development.html使用Nginx的第一步是下载Nginx源码包,例如1.3.4的下载地址为http://nginx.org/download/nginx-1.3.4.tar.gz。下载完后用tar命令解压缩,进入目录后安装过程与Linux下通常步骤无异,例转载 2013-04-07 23:58:53 · 708 阅读 · 0 评论 -
设计模式在C语言中的应用--读nginx源码
市面上的“设计模式“书籍文章,皆针对Java/C++/C#等面向对象语言,似乎离开了面向对象的种种特性,设计模式就无法实现,没有用武之地了。是这样吗?设计模式的概念是从建筑领域引入的,本身从没歧视过面向过程编程语言,它只是对一类问题的普遍解决方案而已。面向对象语言因为有类、多态等特点,使得开发者们容易达到:隐藏细节、封装变化,而这与设计模式的目的比较一致,所以大师们爱把设计模式转载 2013-08-28 23:42:58 · 769 阅读 · 0 评论