【Nginx】HTTP框架概述
来源:互联网 发布:金蝶专业版 数据恢复 编辑:程序博客网 时间:2024/05/22 12:42
HTTP框架由核心模块ngx_http_module、两个HTTP模块ngx_http_core_module和ngx_http_upstream_module组成。整个HTTP框架调度其它HTTP模块来处理HTTP请求。HTTP框架的首要任务就是通过调用ngx_http_module_t接口管理所有HTTP模块的配置项。每一个HTTP模块ngx_module_t的ctx指针都必须指向一个ngx_http_module_t接口。例如ngx_http_core_module模块:
ngx_module_t ngx_http_core_module = { NGX_MODULE_V1, &ngx_http_core_module_ctx, /* module context */ ngx_http_core_commands, /* module directives */ NGX_HTTP_MODULE, /* module type */ NULL, /* init master */ NULL, /* init module */ NULL, /* init process */ NULL, /* init thread */ NULL, /* exit thread */ NULL, /* exit process */ NULL, /* exit master */ NGX_MODULE_V1_PADDING};
其中包含了一个ngx_http_core_module_ctx接口,这个接口的定义如下:
static ngx_http_module_t ngx_http_core_module_ctx = { ngx_http_core_preconfiguration, /* 解析http块配置项前回调 */ NULL, /* 解析完http块配置项后回调 */ ngx_http_core_create_main_conf, /* 创建用于存储位于http块内的配置项 */ ngx_http_core_init_main_conf, /* 解析完http内配置项后调用 */ ngx_http_core_create_srv_conf, /* 创建用于存储位于http配置块和server配置块内的配置项 */ ngx_http_core_merge_srv_conf, /* 将http块内同名的配置项合并到server块内 */ ngx_http_core_create_loc_conf, /* 创建用于存储位于http配置块、server配置块、location配置块内的配置项 */ ngx_http_core_merge_loc_conf /* 将其它两个块内同名配置项合并到location块内 */};
可以看到,ngx_http_module_t接口完全是围绕配置项来进行的。一个块配置项对应一个结构体,块配置项的种类包括:
- http块配置项:整个HTTP业务都位于这个块内。
- server块配置项:每一个server{}块代表一个虚拟主机,由块内server_name确定主机名。
- location块配置项:如果匹配用户请求中的URI,那么就选择location{}块内的配置项来处理用户请求。
当以上三个块配置项中出现了相同名称的配置项时,以哪个配置块内的值为准由各个模块自由定义,甚至可以把两个配置项参数相加。
参考:
《深入理解Nginx》 P347-P351.
0 0
- 【Nginx】HTTP框架概述
- Nginx源码剖析--HTTP模块初始化概述
- NGINX的HTTP框架的初始化流程
- nginx概述
- Nginx概述
- HTTP概述
- HTTP概述
- HTTP概述
- HTTP概述
- HTTP概述
- HTTP概述
- http概述
- HTTP概述
- HTTP概述
- Nginx源码分析—HTTP框架执行流程
- Nginx源码分析—HTTP框架执行流程
- Nginx源码分析—HTTP框架执行流程
- 框架概述
- 判断链表是否有环及两链表是否相交
- 炼数成金优惠码 可用来减钱的
- 约瑟夫环 POj 3517 HOJ 1017
- C++四种cast操作符
- readthedocs、github 、sphinx
- 【Nginx】HTTP框架概述
- Windows下u-boot-2011.03在Mini2440移植详解(1)
- 思科模拟器配置三层交换机局域网
- 虚基类练习:动物虚继承
- SEMQ处理809-Confirmation出现死锁问题
- 【LeetCode】Permutations
- 数字游戏
- 日常技巧
- C/C++ struct初始化/复制/内存分配技巧