背景
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 |