NGX_LUA

导航

导航 __

文章目录

Nginx 是一个高性能,支持高并发的,轻量级的 Web Sever。 Nginx 采用模块化的架构, 可以通过开发 Nginx 的扩展模块 , 将 Nginx 打造成一个全能的 Web Sever, 即将一些功能在前端 Nginx 反向代理层解决,比如登录校验、js 合并等。

1. Nginx 进程模型

0_1330494922Q49n

Nginx 采用多进程模型,单 Master — 多 Worker,由 Master 处理外部信号、配置文件的读取及 Worker 的初始化,Worker 进程采用 单线程、非阻塞的事件模型(Event Loop,事件循环)来实现端口的监听及客户端请求的处理和响应,同时Worker还要处理来自 Master 的信号。

表面上看,当 Nginx 处理一个来自客户端的请求时,先根据请求头的host、ip和 port 来确定由哪个 server 处理,确定了 server 之后,再 根据请求的 uri 找到对应的 location,这个请求就由这个location 处理。实际 Nginx 将一个请求的处理划分为若干个不同阶段 (phase),这些阶段按照前后顺序依次执行。

1

2

3

4

5

6

7

8

9

10

11
NGX_HTTP_POST_READ_PHASE,     //0读取请求phase        

NGX_HTTP_SERVER_REWRITE_PHASE,//1这个阶段主要是处理全局的(server block)的rewrite  

NGX_HTTP_FIND_CONFIG_PHASE,   //2这个阶段主要是通过uri来查找对应的location,然后根据loc_conf设置r的相应变量    

NGX_HTTP_REWRITE_PHASE,       //3这个主要处理location的rewrite  

NGX_HTTP_POST_REWRITE_PHASE,  //4postrewrite,这个主要是进行一些校验以及收尾工作,以便于交给后面的模块。  

NGX_HTTP_PREACCESS_PHASE,     //5比如流控这种类型的access就放在这个phase,也就是说它主要是进行一些比较粗粒度的access。  

NGX_HTTP_ACCESS_PHASE,        //6这个比如存取控制,权限验证就放在这个phase,一般来说处理动作是交给下面的模块做的.这个主要是做一些细粒度的access     

NGX_HTTP_POST_ACCESS_PHASE,   //7一般来说当上面的access模块得到access_code之后就会由这个模块根据access_code来进行操作  

NGX_HTTP_TRY_FILES_PHASE,     //8try_file模块,就是对应配置文件中的try_files指令,可接收多个路径作为参数,当前一个路径的资源无法找到,则自动查找下一个路径  

NGX_HTTP_CONTENT_PHASE,       //9内容处理模块  

NGX_HTTP_LOG_PHASE            //10log模块  

—|—

2. ngx_lua

waiting for update……

__

关闭


糖果

糖果
LUA教程

如果不小心安装错 SQL Server 为 Evaluation 的版本,要小心当超过 180 天之后,系统就会无法正常使用了 这几天遇到一个蛮特别的案例,原本收到的问题是 “维护计划” 忽然无法使用,即便是里面没有任何的Task,都无法顺利地执行。但从对方所提供的错误消...… Continue reading

PLUM NIZ静电容键盘怎么样?

Published on September 25, 2020

程序员如何选择合适的机械键盘

Published on September 18, 2020