此文参考很多网上文章并自己实际测试成功,经整理发出以下博文。
主要参考
http://www.ttlsa.com/nginx/nginx-modules-ngx_lua/
在我们进行nginx部署的时候,可能没考虑到后续业务量的增大带来的性能上的需求,所以只是用Yum/RPM一键安装的Nginx,这种安装虽然很方便,但是模块是不可选的,安装路径也是默认,等到网站访问量上来了才发现Nginx的现有配置无法满足需求,这时候就需要增加第三方模块来升级服务器。
1.查看nginx已经安装的模块
nginx -V #把所有的模块文字复制出来,一会儿编译安装用
2.安装编译必备组件
yum -y install gcc pcre-devel openssl-devel libxslt-devel libxml2 gd-devel geoip-devel
3.下载和解压缩nginx
· nginx 地址:http://www.nginx.org 我这里用的是1.10.2版本的
tar xvf nginx-1.10.2.tar.gz
mv nginx-1.10.2 /usr/local/src
4.下载和解压缩LuaJIT
· luajit 地址:http://luajit.org/download.html
· HttpLuaModule 地址:https://github.com/openresty/lua-nginx-module/tags
tar xvf LuaJIT-2.0.4.tar.gz
mv LuaJIT-2.0.4 /usr/local/src
tar xvf lua-nginx-module-0.10.7.tar.gz
mv lua-nginx-module /usr/local/src
5.安装编译LuaJIT
cd /usr/local/src/LuaJIT-2.0.4
make
出现如下内容表示编译成功
OK Successfully built LuaJIT
make[1]: Leaving directory `/usr/local/src/LuaJIT-2.0.4/src'
==== Successfully built LuaJIT 2.0.4 ====
make install
出现如下内容,表示安装成功
==== Successfully installed LuaJIT 2.0.4 to /usr/local ====
//导入环境变量,告诉nginx去×××luajit
export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.0
6.安装编译Nginx
cd /usr/local/src/nginx-1.10.2
./configure /*nginx -V里面所有的模块和配置参数复制过来*/ --add-module=../lua-nginx-module
make #不要make install 会覆盖原来已安装的nginx
7.升级现有nginx
cp /usr/sbin/nginx /usr/sbin/nginx.bak
cp -rf /usr/local/src/nginx-1.10.2/objs/nginx /usr/sbin/
8.启动和测试
service nginx restart
*可能发生报错:
Starting nginx: /usr/sbin/nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
可以通过以下方式解决:
# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig
启动后修改nginx配置文件,增加如下location
location /lua {
set $test "hello,world";
content_by_lua '
ngx.header.content_type="text/plain";
ngx.say(ngx.var.test);
';}
重启nginx,访问http://localhost/lua, 页面中出现 hello world表示安装成功