• Nginx安装Openresty加载Lua代码


    1、下载

    VM环境:ubuntu 16

    http://openresty.org/cn/download.html

     我选择的是截图红框的那个版本,其他高级的版本,我编译的时候都会报错,所以选择了这个版本,大家编译失败的时候不要放弃,继续选择其他版本编辑即可。

     2、解压然后编译

    ./configure --prefix=/usr/local/openresty1.15.8

    # 之前遇到一个报错,我这样解决了

    # ./configure --prefix=/usr/local/openresty1.15.8 --without-http_rewrite_module

    make

    make install

     安装后的目录

     

     如果本地有启动其他nginx,为了防止冲突,需要在conf目录里修改下配置,端口,我这里修改为81

    启动:./nginx -c /usr/local/openresty1.15.8/nginx/conf/nginx.conf

     3、测试加载lua代码

    http {

    ...

    # 不缓存lua代码,修改lua及时生效,但是每次请求会加载lua代码,牺牲了性能,

    # 所以测试阶段开始关掉。默认是开启的。

    lua_code_cache off;

    server {

    location /lua {
                default_type   text/html;
                content_by_lua_file lua/main.lua;
            }

    }

    }

    修改完后重启,会有提示。

    在 nginx根目录下创建lua目录,/usr/local/openresty1.15.8/nginx/lua,进入lua目录创建

    vim main.lua

    ngx.say("hello !")

     重启nginx 

    ../sbin/nginx -s stop

    ../sbin/nginx -c /usr/local/openresty1.15.8/nginx/conf/nginx.conf

     

    4、lua获取用户请求header

    local headers = ngx.req.get_headers()
    ngx.say("Host : ", headers["Host"],"
    ")
    ngx.say("user-agent : ", headers["user-agent"], "
    ")
    ngx.say("user-agent : ",headers.user_agent, "
    ")
    for k,v in pairs(headers) do
        if type(v) == "table" then
            ngx.say(k," : ", table.concat(v, "."),"br/>")
        else
            ngx.say(k," : ", v, "br/>")
        end
    end

     

     5、获取用户请求post参数

    ngx.say("post args", "
    ")
    ngx.req.read_body()
    local args = ngx.req.get_post_args()
    for k,v in pairs(args) do
        if type(v) == "table" then
            ngx.say(k," : ", table.concat(v, "."),"
    ")
        else
            ngx.say(k," : ", v, "
    ")
        end
    end

     

     你学会了吗?欢迎留言评论,共同进步

  • 相关阅读:
    转 股票触发指定价格发送到 企业微信
    UML测试题(用例图基础b)
    SBCS MBCS Unicode三种编码方式?
    【JS面试题】如何通过闭包漏洞在外部修改函数中的变量
    【题解】JZOJ3854 分组
    操作系统初始化
    c# 异步进阶———— 自定义 taskschedule[三]
    github access token
    为什么要租用高防服务器?
    如何让代码为微服务做好准备
  • 原文地址:https://blog.csdn.net/u014225032/article/details/127494381