Emiller的Nginx模块开发指南.docx

上传人:b****2 文档编号:2434954 上传时间:2022-10-29 格式:DOCX 页数:39 大小:39.18KB
下载 相关 举报
Emiller的Nginx模块开发指南.docx_第1页
第1页 / 共39页
Emiller的Nginx模块开发指南.docx_第2页
第2页 / 共39页
Emiller的Nginx模块开发指南.docx_第3页
第3页 / 共39页
Emiller的Nginx模块开发指南.docx_第4页
第4页 / 共39页
Emiller的Nginx模块开发指南.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

Emiller的Nginx模块开发指南.docx

《Emiller的Nginx模块开发指南.docx》由会员分享,可在线阅读,更多相关《Emiller的Nginx模块开发指南.docx(39页珍藏版)》请在冰豆网上搜索。

Emiller的Nginx模块开发指南.docx

Emiller的Nginx模块开发指南

Emiller的Nginx模块开发指南

作者:

EvanMiller草稿:

2009年8月13日

译者:

姚伟斌草稿:

2009年9月21日

内容目录

0.预备知识....................................................................................................................1

1.Nginx模块任务委派的主要轮廓..............................................................................1

2.Nginx模块的组成.....................................................................................................3

2.1.模块的配置结构体..........................................................................................3

2.2.模块的指令......................................................................................................4

2.3.模块的上下文..................................................................................................6

2.3.1.创建位置结构体(create_loc_conf)..................................................8

2.3.2.初始化结构体(merge_loc_conf)......................................................8

2.4.模块定义..........................................................................................................9

2.5.模块注册........................................................................................................10

3.处理模块、过滤模块和负载均衡模块................................................................10

3.1.剖析处理模块(非代理).................................................................................10

3.1.1.获得位置配置结构体..........................................................................10

3.1.2.产生回复..............................................................................................11

3.1.3.发送HTTP头部....................................................................................12

3.1.4.发送HTTP主体....................................................................................13

3.2.上游模块剖析(又称代理模块)................................................................14

i

3.2.1.代理模块回调函数的概要...................................................................14

3.2.2.create_request回调函数....................................................................16

3.2.3.process_header回调函数...................................................................17

3.2.4.状态保持..............................................................................................18

3.3.处理模块的注册.............................................................................................19

4过滤模块...................................................................................................................19

4.1.剖析头部过滤函数........................................................................................19

4.2.剖析主体过滤函数........................................................................................20

4.3过滤函数的注册.............................................................................................22

5.剖析负载均衡模块..................................................................................................24

5.1.激活指令.........................................................................................................24

5.2.注册函数.........................................................................................................25

5.3.上游主机初始化函数.....................................................................................27

5.4.同伴初始化函数.............................................................................................28

5.5.负载均衡函数.................................................................................................30

5.6.同伴释放函数................................................................................................31

6.完成并编译自定义模块..........................................................................................32

7.高级话题...................................................................................................................33

中文版本修改日志......................................................................................................33

ii

iii

翻译说明:

在nginx的模块编写过程中,时常苦于文档的不足,而源代码中又没多少注

释。

只有Emiller的这篇英文文档带我入门,在自己研读的过程中,就想将其翻

译出来,让其他人能快速的浏览,但是如果你想更深入的进入nginx的代码开发,

最好是多读nginx的代码。

因其内部的代码是经常改变的,所以本文有可能已经

过时。

由于本人英语水平一般,接触Nginx时间不多,翻译中碰到的错误在所难免,

如果您觉得哪里翻译得不对,请跟我联系:

yaoweibin2008@

翻译词汇对照表:

Backend:

后端服务器。

Buffer:

缓冲区。

Callback:

回调函数,一般来说是将某个回调函数赋值给某个函数指针

CHAINOFRESPONSIBILITY:

接力链表。

Context:

上下文,有前后工作环境的意思,主要是前期配置值初始化。

Filter:

过滤模块/函数,模块和函数的概念似乎有点模糊不清。

Handler:

处理模块/函数,另外也有指向具体的处理函数的指针或句柄的意思。

Installation:

原意为安装,我觉得还是译作注册好点。

Load-balancer:

负载均衡模块/函数。

Location:

指目录位置,比如

Master:

主进程,由主进程产生worker进程,同时也可以而监视worker进程的

动态,worker因为异常而退出的时候也可以重启一个新的worker进程。

Reference:

一般译作“引用”,不过很多时候,似乎还不如称作“指针”来的

直接些。

Request:

HTTP服务请求。

Response:

HTTP服务回复。

Server-side:

服务端。

Upstream:

上游服务(器),有时亦称backend。

Worker:

工作进程,模块真正发挥作用的地方。

0.预备知识

对于C语言,你应该十分熟悉,对于结构体和预处理命令应有深入的理解,不

至于见到大量的指针和函数引用就惊慌失措。

如果觉得需要补习,就多看看

K&R(C语言的语法书)。

如果你对于HTTP协议已经有了基本概念,那是很有好处的。

毕竟你正在Web服

务器上做开发。

你应该熟悉Nginx的配置文件。

如果不熟悉,也没关系,这里有一些基本理解:

Nginx配置文件主要分成四部分:

main(全局设置)、server(主

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1