nginx 获取body参数_nginx for lua api之获取请求中的参数

一、通过url获取

1、通过分析url中的规则获取(类似于分析请求路由)

其实是通过在ngx中分析url,将url中的代表特殊含义的部分设置一个自定义是变量中,再通过ngx.var.变量名获取

这个12345可能代表的是新闻的ID,那么:

nginx配置中可以这么写:

location/detail/([a-zA-Z0-9-_]+){

default_type text/html;

set$news_id $1;

content_by_lua_file/data/www/orproject/news.lua

}

在lua文件(news.lua)中可以这么获取:

localnews_id=ngx.var.news_id

ngx.say(news_id)

ngx.say(ngx.var.uri)

当然我们也可以通过分析当前uri(ngx.var.uri)来分析出news_id,不过通过本方法更加便利

2、通过分析url中的查询字符串获取

所谓查询字符串就是url中?后面的那一段,通过这些方式可以在url中传参

(1)通过nginx中的预定义变量获取在nginx中通过arg_NAME可以获取参数名为NAME的值,如/news/detail?id=122,那么我们可以通过arg_id来获取这个参数id的值

在openresty中通过ngx.var.arg_NAME即可获取参数名为NAME的值,如ngx.var.arg_id

(2)通过API中的ngx.req.get_uri_args()

这将获取一个参数的table,如:

你可能感兴趣的:(nginx,获取body参数)