上一章节在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
#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
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会看到如下报警
7、错误日志
如果运行过程中出现错误,请不要忘记查看错误日志。
tail -f /usr/servers/nginx/logs/error.log
到此我们的基本环境搭建完毕。