nginx安装lua扩展
nginx安装lua扩展
中文
参考文章:
https://www.cnblogs.com/root0/p/10873867.html
https://www.cnblogs.com/aoeiuv/p/6856056.html
Nginx安装lua支持
Nginx安装lua支持
需要LuaJIT-2.0.4.tar.gz,ngx_devel_kit,lua-nginx-module
1.下载安装LuaJIT-2.0.4.tar.gz
wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gz
tar xzvf LuaJIT-2.0.4.tar.gz
cd LuaJIT-2.0.4
make install PREFIX=/usr/local/luajit
#注意环境变量!
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0
2.**下载解压ngx_devel_kit**
wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
tar -xzvf v0.3.0.tar.gz
3.**下载解压**lua-nginx-module
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.8.tar.gz
tar -xzvf v0.10.8.tar.gz
4.下载安装nginx-1.10.3.tar.gz
wget http://nginx.org/download/nginx-1.10.3.tar.gz
tar -xzvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure –add-module=/opt/soft/ngx_devel_kit-0.3.0 –add-module=/opt/soft/lua-nginx-module-0.10.8
#注意ngx_devel_kit和lua-nginx-module以实际解压路径为准
make -j2
make install
注:报错gcc需要安装,可以执行
yum install -y gcc g++ gcc-c++
依赖报错,可以执行
yum -y install zlib zlib-devel openssl openssl–devel pcre pcre-devel
5.验证
#将nginx做成命令
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
cd /usr/local/nginx/conf/
vi nginx.conf
#lua指令方式
#在server 中添加一个localtion
location /hello {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
}
#lua文件方式
#在server 中添加一个localtion
location /lua {
default_type ‘text/html’;
content_by_lua_file conf/lua/test.lua; #相对于nginx安装目录
}
#test.lua文件内容
ngx.say(“hello world”);
#启动nginx(已经做了软连接了,可以在任何目录启动)
nginx
注:
报错nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory 可以执行
ln -s /usr/local/luajit/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2
具体source的路径已实际安装路径为准
访问:
显示:hello, lua
显示:hello world
容器
Dockerfile安装,注意ldconfig装载动态连接库
FROM 10.131.9.12:5000/base/nginx:1.16
ADD nginx-1.10.3.tar.gz /tmp
ADD LuaJIT-2.0.4.tar.gz /tmp
ADD ngx_devel_kit-0.3.0.tar.gz /opt
ADD lua-nginx-module-0.10.8.tar.gz /opt
RUN cd /tmp/LuaJIT-2.0.4 \
&& make PREFIX=/usr/local/luajit \
&& make install PREFIX=/usr/local/luajit \
&& export LUAJIT_LIB=/usr/local/luajit/lib \
&& export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0 \
&& cd /tmp/nginx-1.10.3 \
&& ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream_ssl_module --with-http_realip_module --add-module=/opt/ngx_devel_kit-0.3.0 --add-module=/opt/lua-nginx-module-0.10.8 \
&& make \
&& make install \
&& rm -rf /tmp/nginx-1.10.3 \
&& rm -rf /tmp/LuaJIT-2.0.4 \
&& rm -rf /opt/ngx_devel_kit-0.3.0 \
&& rm -rf /opt/lua-nginx-module-0.10.8 \
&& echo "/usr/local/luajit/lib" >> /etc/ld.so.conf.d/libc.conf \
&& echo "/usr/local/luajit/include/luajit-2.0" >> /etc/ld.so.conf.d/libc.conf \
&& ldconfig
COPY nginx.conf /usr/local/nginx/conf/nginx.conf
EXPOSE 80
ADD lua /yd/lua
ADD demo /yd/demo
ADD run.sh /
RUN chmod u+x /run.sh
CMD ["/run.sh"]
echo "Asia/Shanghai" > /etc/timezone
rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
/usr/local/nginx/sbin/nginx