背景
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。现在通常把lua迁入nginx中,根据lua脚本规则,强化nginx的能力。本文介绍在centos7中安装nginx整合lua。
环境
centos7
安装
关闭防火墙
1  | systemctl stop firewalld.service #停止firewall  | 
安装依赖环境
1  | yum -y install yum-utils gcc zlib zlib-devel pcre-devel openssl openssl-devel wget  | 
安装LuaJIT
1  | wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz  | 
安装nginx
下载ngx_devel_kit、lua-nginx-module、nginx
1  | wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz  | 
编译Nginx
1  | cd nginx-1.12.1  | 
安装
1  | make && make install  | 
启动nginx
启动时会nginx可能会报错
1  | ./nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file:  | 
原因是:找不到libluajit-5.1.so.2这个文件
解决办法
找到 libluajit-5.1.so.2,libluajit-5.1.so.2.0.2这两个文件复制到 对应的lib下
64位是 /usr/lib64
32位是 /usr/lib
1  | find / -name libluajit-5.1.so.2  | 

文件默认是安装在 /usr/local/lib/libluajit-5.1.so.2下
1  | cp /usr/local/lib/libluajit-5.1.so.2 /usr/lib64/  | 
然后启动
1  | /usr/local/nginx/sbin/nginx  | 
验证
在nginx安装目录下,修改nginx.conf文件
在Server代码块下添加如下代码
1  | location /hello{  | 

配置生效
1  | /usr/local/nginx/sbin/nginx -t  | 
浏览器访问
访问地址: http://xxx.xxx.xxx/hello

到此就成功了。
添加服务
这时nginx只能用绝对路径启动,测试和重载,非常不方便。那需要把nginx添加到linux的服务管理中。
编写nginx.service文件
1  | [Unit]  | 
添加
1  | cp ./nginx.service /lib/systemd/system/  | 
重新加载
1  | systemctl daemon-reload  | 
验证
1  | systemctl start nginx.service  | 

