Nginx 模块自主开发一:开发前的了解

个人觉得要真正理解源码,如果 只停留在理论是远远不够,所以从现在起,要开始学习自己开发Nginx模块,再反过来理解Nginx本身代码。

Nginx 发送文件或转发 请求到其他服务器,有处理模块处理,但需要压缩或在服务端添加一些东西时,可以采用过滤模块,还是有一些核心模块主要负责管理网络层和应用层的 协议。如果处理模块把请求反向代理到后端的服务器,就变成另外一类的模块:负载均衡模块。负载均衡模块的配置中有一组后端服务器,当一个HTTP请求过来时,它决定哪台服务器应当获得这个请求。Nginx的负载均衡模块默认采用两种方法:轮转法,它处理请求的方式就像纸牌游戏一样从头到尾分发;IP哈希法,在众多请求的情况下,它确保来自同一个IP的请求会分发到相同的后端服务器。


每个过滤模块不会等上一个过滤模块全部完成;它能把前一个过滤模块的输出作为其处理内容;有点像 Unix 中的流水线。
过滤模块能以 buffer(缓冲区)为单位进行操作,这些 buffer 一般都是一页(4K)大小,当然你也可以在 nginx.conf 文件中进行配置。这意味着,比如模块可以压缩来自后端服务器的回复,然后像流一样的到达客户端,直到整个回复发送完成。


函数可在以下时段执行某些功能:
• 当服务读配置文件之前
• 读存在 location 和 server 或其他任何部分的每一个配置指令
• 当 Nginx 初始化全局部分的配置时
• 当 Nginx 初始化主机部分(比如主机/端口)的配置时
• 当 Nginx 将全局部分的配置与主机部分的配置合并的时候
• 当 Nginx 初始化位置部分配置的时候
• 当 Nginx 将其上层主机配置与位置部分配置合并的时候
• 当 Nginx 的主(master)进程开始的时候
• 当一个新的工作进程(worker)开始的时候
• 当一个工作进程退出的时候
• 当主进程退出的时候
• 处理请求
• 过滤回复的头部
• 过滤回复的主体
• 选择一台后端服务器
• 初始化到后端服务器的请求
• 重新初始化到后端的服务器的请求
• 处理来自后端服务器的回复
• 完成与后端服务器的交互

小结

以上内容是参考Emiller 的 Nginx 模块开发指南,我觉得现在很多 网上已经偏离 了开源的精神,把一些资源变相用积分之类获得,所以 个人决定要贡献 一份力量 ,我会将自己看到的好资料都免费开放给大家下载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿阿三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值