当前位置 主页 > 服务器问题 > nginx问题汇总 >

    安装Nginx+Lua开发环境(3)

    栏目:nginx问题汇总 时间:2019-02-20 16:44


    hello world

    5、lua代码文件

    我们把lua代码放在nginx配置中会随着lua的代码的增加导致配置文件太长不好维护,因此我们应该把lua代码移到外部文件中存储。

    复制代码 代码如下:
    vim /usr/servers/nginx/conf/lua/test.lua 

    复制代码 代码如下:
    #添加如下内容 
    ngx.say("hello world");  

    然后lua.conf修改为  

    复制代码 代码如下:
    location /lua { 
        default_type 'text/html'; 
        content_by_lua_file conf/lua/test.lua; #相对于nginx安装目录 
    }  

    此处conf/lua/test.lua也可以使用绝对路径/usr/servers/nginx/conf/lua/test.lua。
     
    6、lua_code_cache
    默认情况下lua_code_cache  是开启的,即缓存lua代码,即每次lua代码变更必须reload nginx才生效,如果在开发阶段可以通过lua_code_cache  off;关闭缓存,这样调试时每次修改lua代码不需要reload nginx;但是正式环境一定记得开启缓存。

    复制代码 代码如下:
        location /lua { 
            default_type 'text/html'; 
            lua_code_cache off; 
            content_by_lua_file conf/lua/test.lua; 

    开启后reload nginx会看到如下报警
    nginx: [alert] lua_code_cache is off; this will hurt performance in /usr/servers/nginx/conf/lua.conf:8
     
    7、错误日志
     
    如果运行过程中出现错误,请不要忘记查看错误日志。

    复制代码 代码如下:
    tail -f /usr/servers/nginx/logs/error.log 

    到此我们的基本环境搭建完毕。
     
    nginx+lua项目构建

    以后我们的nginx lua开发文件会越来越多,我们应该把其项目化,已方便开发。项目目录结构如下所示:
    example
        example.conf     ---该项目的nginx 配置文件
        lua              ---我们自己的lua代码
          test.lua
        lualib            ---lua依赖库/第三方依赖
          *.lua
          *.so
     
    其中我们把lualib也放到项目中的好处就是以后部署的时候可以一起部署,防止有的服务器忘记复制依赖而造成缺少依赖的情况。
     
    我们将项目放到到/usr/example目录下。
     
    /usr/servers/nginx/conf/nginx.conf配置文件如下(此处我们最小化了配置文件)

    复制代码 代码如下:
    #user  nobody; 
    worker_processes  2; 
    error_log  logs/error.log; 
    events { 
        worker_connections  1024; 

    http { 
        include       mime.types;