Nginx模块学习(1)基本介绍
记录一下,现在记录的都是简单的东西。以后会记录和分享操作系统和
python源码方面的学习记录。言归正传...
linux老爸说过想了解它就要先学会使用。当然了,这个它是指linux。
我最初使用的apache,后来就在系统上一直用的是nginx。
原因就不说了,每件事情都有个人、环境的因素在其中,很难说好与坏。
基本的配置就不说了。这里讲的是模块开发,当然也可以叫nginx插件编写。
我也是看看code,网上搜搜资料、看看博客学习的。
Ngnix模块主要的三个任务是:
1)处理程序处理请求,和产生所要的输出;
2)通过处理程序中的一个或多个过滤程序产生输出;
3)当后台有多以一个可用的服务时,起到负载均衡的作用。
Nginx并不能像apache那样动态的链接模块,模块是编译时编译进nginx中的。
模块起到了很大的作用在nginx处理请求的过程中,nginx的核心只是简单地处理所有
的网络和应用协议,还有设置的处理客户端请求的模块的顺序。
典型的处理周期是:
客户端发送http请求 → 根据location配置域Nginx选择合适的处理程序 →
如果适合,负载均衡器选择一个后端服务 → 处理程序处理请求并把输出缓冲区数据传给
第一个过滤器→ 第一个过滤器传给第二个 → 第二个传给第三个 → ......→ 把最后
一个输出(response)发送给客户端。