Yum/RPM安装的Nginx如何安装第三方模块 | LuaJIT

Yum/RPM安装的Nginx如何安装第三方模块 | LuaJIT

此文参考很多网上文章并自己实际测试成功,经整理发出以下博文。

主要参考

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表示安装成功

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部