nginx-lua模块处理流程

一. 简述:

nginx的模块化设计使得每一个http模块可以只专注于完成一个独立的,简单的功能。一个请求的完整处理过程可以由多个http模块共同协作完成,这种设计具有简单性,测试性,扩展性,灵活性。关于nginx 的处理流程,可以参考: nginx-配置指令的执行顺序!_nginx配置顺序-CSDN博客 这里只会说明lua模块涉及到的部分。

二. 关于lua 模块处理流程:

nginx框架按照常见的处理流程,将处理阶段划分为11个阶段,其中每个处理阶段又可以由任意多个http模块流水式进行请求处理,开发者可以很容易分辨咨询需要开放的模块应该定义在什么阶段。而lua模块,涉及到其中的8个阶段。

init_by_lua http

set_by_lua server, server if, location, location if

rewrite_by_lua http, server, location, location if

access_by_lua http, server, location, location if

content_by_lua location, location if

header_filter_by_lua http, server, location, location if

body_filter_by_lua http, server, location, location if

log_by_lua http, server, location, location if

简述:

set_by_lua: 流程分支处理判断变量初始化

rewrite_by_lua: 转发、重定向、缓存等功能(例如特定请求代理到外网)

access_by_lua: IP准入、接口权限等情况集中处理(例如配合iptable完成简单防火墙)

content_by_lua: 内容生成

header_filter_by_lua: 应答HTTP过滤处理(例如添加头部信息)

body_filter_by_lua: 应答BODY过滤处理(例如完成应答内容统一成大写)

log_by_lua: 会话完成后本地异步完成日志记录(日志可以记录在本地,还可以同步到其他机器)。

相关推荐
考拉讲支付1 小时前
延迟分账 / 核销分账的技术实现方案:服务完成后再分钱,到底怎么设计?
大数据·运维·人工智能·微信小程序·小程序·系统架构
ADAI_Bowen2 小时前
写文章 - 知乎
大数据·运维·人工智能
云宏信息3 小时前
超融合和存算分离怎么选?从性能、可靠性、扩展、成本四个维度讲述如何精准匹配架构选型 | 附企业降本轻量云方案
运维·服务器·架构·云计算
咸鱼梦想家π3 小时前
Linux开发工具(下)
linux·运维·服务器
云飞云共享云桌面5 小时前
机械制造研发部门:一台SolidWorks云主机替代 10 台传统图形工作站
运维·服务器·网络·3d·自动化·制造
j7~5 小时前
【ProtoBuf】(篇一)初识 ProtoBuf
运维·服务器·序列化·protobuf·protobuf的适用特点
丰锋ff5 小时前
用户管理命令
linux·运维·服务器
迪菲赫尔曼5 小时前
【基础篇 08】让VS Code连接服务器:界面在本地,文件保存到远端
运维·服务器·vscode·yolo·论文·教程·ultralyt
xianyuCcCcCCCcc6 小时前
Kubernetes :健康检查、认证授权与可视化面板
运维·云原生·kubernetes·dashboard
Zenova EdgeOS6 小时前
Linux 日志实战:用 journalctl 精准检索与治理工业边缘日志
linux·运维·chrome