请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

本文来自

安全运维工具

安全运维工具

人已关注

请添加对本版块的简短描述

nginx-lua get post请求小例子

[复制链接]
4500 abc 发表于 2019-9-18 19:20:06
nginx 启动,停止,重启命令(电脑为ubuntu环境),参考:http://wenku.baidu.com/link?url= ... 3VqXiW7TATriKVkQB6S

sudo /usr/local/nginx/sbin/nginx

sudo /usr/local/nginx/sbin/nginx -s stop

sudo /usr/local/nginx/sbin/nginx -s reload



/usr/local/nginx/conf/nginx.conf 修改配置文件, 加上自己的url

这里采用了include 方法,其实就是写在/usr/local/nginx/conf/nginx.conf文件中

Nginx安装及配置文件: http://www.cszhi.com/20120513/nginx_nginx-conf.html
安装Nginx+Lua+OpenResty开发环境配置全过程实例
http://www.cnblogs.com/zdz8207/p/Nginx-Lua-OpenResty.html

http {
    include       mime.types;
    default_type  application/octet-stream;

    #lua模块路径,多个之间”;”分隔,其中”;;”表示默认搜索路径,默认到/usr/servers/nginx下找
    #lua_package_path "/usr/servers/lualib/?.lua;;"; #lua 模块
    #lua_package_cpath "/usr/servers/lualib/?.so;;"; #c模块




nginx_test.conf(nginx_test.conf 把location定义好)

如下的location /test/post_2 即使一个指定路径 , 并且指定了处理请求的文件是 hello_http.lua

location /test/post_1{
        content_by_lua '
                ngx.req.read_body()
                local args = ngx.req.get_post_args()
                for key, val in pairs(args) do
                        if type(val) == "table" then
                                ngx.say(key, ": ", table.concat(val, ", "))
                        else
                                ngx.say(key, ": ", val)
                        end
                end
        ';
}
location /test/post_2{
         lua_need_request_body on ;
         default_type 'text/plain' ;
         content_by_lua_file /home/ding/data/luafile/hello_http.lua ;
}
hello.http.lua 文件内容如下,主要是接收到post请求的body后,对post参数进行遍历输出

local request_method = ngx.var.request_method
local args = nil

ngx.say('处理htpp请求,get或post请求的参数如下')

if "GET" == request_method then
    ngx.say("get请求")
    args = ngx.req.get_uri_args()
elseif "POST" == request_method then
    ngx.say("post请求")
    ngx.req.read_body()
    args = ngx.req.get_post_args()
end
for key, val in pairs(args) do
        if type(val) == "table" then
                ngx.say(key, ": ", table.concat(val, ", "))
        else
                ngx.say(key, ": ", val)
        end
end
ngx.say('get or post request over')


测试结果


参考学习

nginx-lua :  http://outofmemory.cn/code-snippet/14396/nginx-and-lua

curl请求:http://blog.sina.com.cn/s/blog_6e2d53050101k230.html

http://www.linuxboy.net/OpenSusejc/145049.html



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表