Nginx Lua 环境搭建
安装
官方安装文档:http://openresty.org/cn/linux-packages.html#centos
以centos举例:
1 | # add the yum repo: |
源码编译安装:
先去官网下载源码包:http://openresty.org/cn/download.html,安装指导:http://openresty.org/cn/installation.html
1 | yum install -y pcre-devel openssl-devel gcc curl |
默认安装路径/usr/local/openresty
,想更改路径通过–prefix=/path指定。
至此,OpenResty安装完成,可以尝试启动:
1 | /usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf -p /usr/local/openresty/nginx/ |
Hello World示例
1 | cd /usr/local/openresty |
1 | location /echo { |
Nginx Lua 开发环境搭建
1. 编辑nginx.conf配置文件
1 | vi /usr/local/openresty/nginx/conf/nginx.conf |
2.在http部分添加如下配置
1 | #lua模块路径,多个之间”;”分隔,其中”;;”表示默认搜索路径,默认到/usr/servers/nginx下找 |
3.为了方便开发在/opt/openresty/nginx/conf目录下创建一个lua.conf
1 | #lua.conf |
4 在nginx.conf中的http部分添加include lua.conf包含此文件片段
1 | include lua.conf; |
5. 测试是否正常
1 | /usr/local/openresty/nginx/sbin/nginx -t |
6. lua_code_cache
默认情况下lua_code_cache 是开启的,即缓存lua代码,即每次lua代码变更必须reload nginx才生效,如果在开发阶段可以通过lua_code_cache off;关闭缓存,这样调试时每次修改lua代码不需要reload nginx;但是正式环境一定记得开启缓存。
1 | #lua.conf |
开启后reload nginx会看到如下报警
nginx: [alert] lua_code_cache is off; this will hurt performance in /opt/openresty/nginx/conf/lua.conf:7
7. 错误日志
如果运行过程中出现错误,请不要忘记查看错误日志。
1 | tail -f /opt/openresty/nginx/logs/error.log |
到此,基本环境搭建完毕。
nginx+lua项目构建
以后我们的nginx lua开发文件会越来越多,我们应该把其项目化,已方便开发。项目目录结构如下所示:
1 | OpenResty |
其中我们把lualib也放到项目中的好处就是以后部署的时候可以一起部署,防止有的服务器忘记复制依赖而造成缺少依赖的情况。
我们将项目放到到/usr/openResty目录下。
nginx.conf配置文件修改includ的conf文件,修改为我们项目中的conf,同时修改引入lualib的地址
1 | #lua模块路径,多个之间”;”分隔,其中”;;”表示默认搜索路径,默认到/usr/servers/nginx下找 |
通过绝对路径包含我们的lua依赖库和nginx项目配置文件。
/usr/openResty/openResty.conf的内容如下:
1 | server { |
ua文件我们使用绝对路径/usr/openResty/lua/test.lua
到此,整个openResty就可以扔到github上了