网站大量收购独家精品文档,联系QQ:2885784924

nginx模块开发公开课.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
nginx模块开发公开课

* * * * * * * * * * * * * * 编码规范 风格图示 7,结构体数组的左花括号放在同一行上。 8,较大的结构体数组元素最开始空一行。 9,元素内容上下对齐。 编码规范 风格图示 10,注释上下对齐。 编码规范 风格图示 11,函数调用折行时,参数上下对齐。 12,函数定义时,类型单独一行。 13,变量声明的类型上下排列按照从短到长的顺序。注意,最下面的变量的类型和名称间的空格为2-3个。一般情况下为2个,这是Nginx中最小的变量声明中类型和名称的距离。 14,变量名称上下对齐——字母对齐,不包括指针的*号。 编码规范 风格图示 15,结构体内变量上下对齐(字母,不包括指针的的*号)。 编码规范 风格图示 16,单行注释格式为/* something */ 17,多行注释的格式为: /* * something */ 编码规范 风格图示 18,函数定义的左花括号独占一行。 19,switch语句中,switch和case关键字上下对齐。 编码规范 风格图示 20,当条件表达式过长需要折行时,关系运算符须位于下一行的行首,并与上一行的条件表达式的第一个字符对齐,同时右花括号须位于单独的一行,并与if/while等关键字对齐。 21,else语句之前须空出一行。 编码规范 风格图示 22,在函数中,相同类型的变量声明放在一行上。 * * * * * * * * * * * * * * * * * * * * * * * nginx模块开发 By 薛长俊 2013-11 模块化 daemon Nginx模块开发 编码规范 模块化 模块分类 handlers,处理http请求并构造输出 filters,处理handler产生的输出 load-balancers,当有多于一个的后端服务器时,选择一台将http请求发送过去 模块化 一次常规请求和响应的过程 客户端发送HTTP请求 - Nginx根据配置选择一个合适的处理模块 - (如果有)负载均衡模块选择一台后端服务器,并负责完成后端的发送接收过程 - 处理模块进行处理并把输出缓冲放到第一个过滤模块上 - 第一个过滤模块处理后输出给第二个过滤模块 - 然后第二个过滤模块又到第三个 - 依此类推 - 最后把回复发给客户端。 模块化 函数执行时机 ? 当服务读配置文件之前 ? 读存在location和server或其他任何部分的每一个配置指令 ? 当Nginx初始化全局部分的配置时 ? 当Nginx初始化主机部分(比如主机/端口)的配置时 ? 当Nginx将全局部分的配置与主机部分的配置合并的时候 ? 当Nginx初始化位置部分配置的时候 ? 当Nginx将其上层主机配置与位置部分配置合并的时候 ? 当Nginx的主(master)进程开始的时候 ? 当一个新的工作进程(worker)开始的时候 ? 当一个工作进程退出的时候 ? 当主进程退出的时候 ? 处理请求 模块化 函数执行时机 ? 过滤回复的头部 ? 过滤回复的主体 ? 选择一台后端服务器 ? 初始化到后端服务器的请求 ? 重新初始化到后端的服务器的请求 ? 处理来自后端服务器的回复 ? 完成与后端服务器的交互 模块化 模块定义(objs/ngx_modules.c ) extern ngx_module_t ngx_core_module; extern ngx_module_t ngx_errlog_module; extern ngx_module_t ngx_conf_module; extern ngx_module_t ngx_events_module; … ngx_module_t *ngx_modules[] = { ngx_core_module, ngx_errlog_module, ngx_conf_module, ngx_events_module, …. } 模块化 ngx_module_t,ngx_module_s typedef struct ngx_module_s ngx_module_t; struct ngx_module_s { ngx_uint_t ctx_index; //分类的模块计数器,nginx模块分为四种:core、event、http和mail,每个模块都会各自计数。 ngx_uint_t index; //模块计数器,按照每个模块在ngx_modu

文档评论(0)

静待花开 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档