配置nginx+lua开发环境笔记(2),nginxlua


  上一章节在Centos7下安装了openresty  点击查看点击打开链接

          接下来又参考张开涛的安装Nginx+Lua开发环境一步一步做的实验     点击查看点击打开链接

  由于我是用yum安装的,所以默认把openresty的依赖包以及LuaJIT,ngx_cache_purge等一些内置的插件都安装好了,安装成功可以发现

  会发现多出来了如下目录,说明安装成功(/usr/local/openresty 是默认的安装路径)

/usr/local/openresty/luajit :luajit环境,luajit类似于java的jit,即即时编译,lua是一种解释语言,通过luajit可以即时编译lua代码到机器代码,得到很好的性能;
/usr/local/openresty/lualib:要使用的lua库,里边提供了一些默认的lua库,如redis,json库等,也可以把一些自己开发的或第三方的放在这;
/nginx :安装的nginx;
 通过/usr/local/openresty/nginx/sbin/nginx  -V 查看nginx版本和安装的模块,由于前一章已经设置了path,通过source /etc/profile 直接使用nginx -v即可

 配置环境

  配置及Nginx HttpLuaModule文档在可以查看http://wiki.nginx.org/HttpLuaModule。

1)编辑nginx.conf配置文件 

vim /usr/local/openresty/nginx/conf/nginx.conf  

2)在http部分添加如下配置 

#lua模块路径,多个之间”;”分隔,其中”;;”表示默认搜索路径,默认到/usr/servers/nginx下找  
lua_package_path "/usr/local/openresty/lualib/?.lua;;";  #lua 模块  
lua_package_cpath "/usr/local/openresty/lualib/?.so;;";  #c模块   
3)为了方便开发我们在/usr/servers/nginx/conf目录下创建一个lua.conf 
#lua.conf  
server {  
    listen       80;  
    server_name  _;  
}  
4)在nginx.conf中的http部分添加include lua.conf包含此文件片段 

include lua.conf;  
5、测试是否正常 
/usr/local/openresty/nginx/sbin/nginx  -t   

如果显示如下内容说明配置成功

nginx: the configuration file /usr/servers/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/servers/nginx/conf/nginx.conf test is successful

HelloWorld

1、在lua.conf中server部分添加如下配置 
location /lua {  
    default_type 'text/html';  
        content_by_lua 'ngx.say("hello world")';  
}  
2、测试配置是否正确 
/usr/local/openresty/nginx/sbin/nginx  -t  
3、重启nginx 

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

 4、访问如http://192.168.0.219/lua(自己的机器根据实际情况换ip),可以看到如下内容 

hello world

5、lua代码文件

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

vim /usr/local/openresty/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/local/openresty/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/local/openresty/nginx/conf/lua.conf:8

7、错误日志

 如果运行过程中出现错误,请不要忘记查看错误日志。 

tail -f /usr/servers/nginx/logs/error.log  
到此我们的基本环境搭建完毕。

相关内容

    暂无相关文章