一、初识 OpenResty
OpenResty 是基于 Nginx的高性能 Web 平台,用来搭建超高并发、高扩展的动态 Web 应用、服务、动态网关。 特点:
- 完整继承 Nginx 全部能力(反向代理、负载均衡、静态资源等)
- 使用 Lua 进行功能扩展,内置大量 Lua 库与第三方模块
- 可以直接写 Lua 脚本,自定义业务逻辑
本质:给 Nginx 嵌入 Lua 脚本引擎,让 Nginx 不再只做转发,能在网关层写业务代码。
二、OpenResty 获取请求参数(重点)
表格
| 参数格式 | 示例 | OpenResty Lua API |
|---|---|---|
| 路径占位符 | /item/1001 |
Nginx location 正则捕获,ngx.var[1]获取捕获分组 |
| 请求头 | id:1001 |
local headers = ngx.req.get_headers() 返回 table |
| GET 查询参数 | ?id=1001 |
local getParams = ngx.req.get_uri_args() 返回 table |
| POST 表单参数 | id=1001 |
先ngx.req.read_body(),再ngx.req.get_post_args() |
| JSON 请求体 | {"id":1001} |
先ngx.req.read_body(),再ngx.req.get_body_data()拿到字符串,再 json 解析 |