一、环境搭建

不多说,参考官方文档

https://moonbingbing.gitbooks.io/openresty-best-practices/content/lua/build_env.html

某些模块没有加载的自行看文档是否默认加载,没有的话加进去

http://openresty.org/cn/

nginx针对lua的配置参数及API文档参考(重要,异步非阻塞,能用ngx尽量就别用Lua的api)  

https://www.nginx.com/resources/wiki/modules/lua/#ngx-exec

二、nginx.conf配置说明

worker_processes  1;        #nginx worker 数量
error_log logs/error.log;   #指定错误日志文件路径
events {
    worker_connections 1024;
}
http {
    upstream pg_server { #pgsql数据库配置
        postgres_server 192.168.180.130:5432 dbname=hzctmsg user=postgres password=postgres;
        postgres_keepalive max=800 mode=single overflow=reject;
    }
    server {
        #监听端口,若你的6699端口已经被占用,则需要修改
        listen 6699;
        keepalive_timeout 20; #长连接timeout
        keepalive_requests 8192; #每个连接最大请求数
        lua_code_cache off;#不用重启nginx,lua代码修改立即生效,测试时可以试用,生产要关闭
        location / {
            default_type text/html;
            content_by_lua_file /openresty-work/lua/test_redis_pgsql.lua;
        }
        location /postgres {
            internal;
            default_type text/html;
            set_by_lua $query_sql 'return ngx.unescape_uri(ngx.var.arg_sql)';
            postgres_pass   pg_server;#关联上面的upstream...
            rds_json          on;
            rds_json_buffer_size 16k;
            postgres_query  $query_sql;
            postgres_connect_timeout 1s;
            postgres_result_timeout 2s;
        }
    }
}

三、附件是测试时用到的模块和测试文件,记得下载后后缀改为lua