Nginx安装Lua

Nginx安装Lua

1.安装Lua(两个二选一)

yum install readline-devel (CentOS)
sudo apt-get install libreadline-dev (Ubuntu)

sudo apt-get install libncurses5-dev (Ubuntu)
wget -O LuaJIT-2.0.4.tar.gz http://luajit.org/download/LuaJIT-2.0.4.tar.gz

tar -zxvf LuaJIT-2.0.4.tar.gz

make && make install
wget -O lua-5.1.5.tar.gz http://www.lua.org/ftp/lua-5.1.5.tar.gz

tar -zxvf lua-5.1.5.tar.gz

make linux test

检查libluajit-5.1.so.2.0.4库是否存在

ls /usr/local/lib

2.准备nginx插件
shell 复制代码
wget -O ngx_devel_kit_v0.3.0.tar.gz https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz 
tar -zxvf ngx_devel_kit_v0.3.0.tar.gz

wget -O lua-nginx-module.zip https://github.com/openresty/lua-nginx-module/archive/master.zip
unzip lua-nginx-module.zip

git clone https://github.com/zebrafishlabs/nginx-statsd.git
3.安装nginx
shell 复制代码
wget http://nginx.org/download/nginx-1.10.2.tar.gz
tar -zxvf nginx-1.10.2.tar.gz
cd nginx-1.10.2

./configure --prefix=/data/beyond/nginx \
    --pid-path=/data/logs/nginx/nginx.pid \
    --lock-path=/data/beyond/nginx/nginx.lock \
    --error-log-path=/data/logs/nginx/error.log \
    --http-log-path=/data/logs/nginx/access.log \
    --http-client-body-temp-path=/data/temps/nginx/client_body_temp \
    --http-proxy-temp-path=/data/temps/nginx/proxy_temp \
    --http-fastcgi-temp-path=/data/temps/nginx/fastcgi_temp \
    --http-uwsgi-temp-path=/data/temps/nginx/uwsgi_temp \
    --http-scgi-temp-path=/data/temps/nginx/scgi_temp \
    --with-http_stub_status_module \
    --with-http_ssl_module \
    --with-http_stub_status_module \
    --with-http_ssl_module \
    --with-ld-opt="-Wl,-rpath,/usr/local/lib" \
    --add-module=/data/software/ngx_devel_kit-0.3.0 \
    --add-module=/data/software/lua-nginx-module-master \
    --add-module=/data/software/nginx-statsd \
    --with-pcre=/data/software/pcre-8.35


make -j2
make install

注意: 安装的 openssl 版本若是 1.0.1---1.0.1f / 1.0.2 Beta1(可通过 openssl version 查看),则需重新手动安装,否则会有心血漏洞的隐患。可参照本文下方的操作步骤编译安装。

注:

  • 若 openssl 的版本 >= 1.1.0,nginx lua module 编译时会报错,需要重新安装 openssl,安装过程如下:
1.安装 openssl

wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar -zxvf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k
./config --prefix=/usr/local/openssl-1.0.2k -fPIC shared
make && make install

2.若已经安装了自带的 openssl,可通过 ldd (which nginx) (这里的 (which nginx) 是指 nginx 可执行文件的位置)查看 nginx 所依赖的 ssl 的库文件位置(一般是在 /lib64/ 目录下的软连接),备份好软连接,然后将其指向新安装的位置

ldd $(which nginx)

libssl.so.1.0.0 => /lib64/libssl.so.10

libcrypto.so.1.0.0 => /lib64/libcrypto.so.10

mv /lib64/libssl.so.10 /lib64/libssl.so.10_old
mv /lib64/libcrypto.so.10 /lib64/libcrypto.so.10_old
ln -sv /usr/local/openssl-1.0.2k/lib/libssl.so.1.0.0 /lib64/libssl.so.10
ln -sv /usr/local/openssl-1.0.2k/lib/libcrypto.so /lib64/libcrypto.so.10

3.进入 nginx 源码目录,修改 auto/lib/openssl/conf 文件
复制代码
把

            CORE_INCS="$CORE_INCS $OPENSSL/.openssl/include"
            CORE_DEPS="$CORE_DEPS $OPENSSL/.openssl/include/openssl/ssl.h"
            CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libssl.a"
            CORE_LIBS="$CORE_LIBS $OPENSSL/.openssl/lib/libcrypto.a"
            
修改成

            CORE_INCS="$CORE_INCS $OPENSSL/include"
            CORE_DEPS="$CORE_DEPS $OPENSSL/include/openssl/ssl.h"
            CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libssl.a"
            CORE_LIBS="$CORE_LIBS $OPENSSL/lib/libcrypto.a"
4.make clean 之后,重新 configure,但选项中添加一项 --with-openssl=/usr/local/openssl-1.0.2k/,然后重新 make && make install
相关推荐
Csvn15 小时前
认识 Nginx
后端·nginx
陈希1231 天前
Nginx 从入门到能扛事:反向代理、负载均衡与 HTTPS 实战
nginx·https·负载均衡
木头左2 天前
【Nginx】内网服务源 IP 白名单实战:动态域名解析放行网段 + 端口接管零改造
运维·nginx·白名单·反向代理
skywalk81632 天前
把 去也网站 从 Ubuntu 搬到 FreeBSD:一次 Service Jail + nginx 的部署实录
linux·运维·nginx·ubuntu·freebsd
没差c2 天前
winsw将jar、nginx等注册为Windows服务
windows·nginx·jar
努力努力再努力wz2 天前
【Lua进阶系列】Lua 调试机制详解:从虚拟机调用栈、错误传播到 debug 库
junit·单元测试·lua
Lsetea4 天前
Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查
运维·nginx·docker·https·ssl证书
炸薯条!4 天前
博客系统测试报告
开发语言·lua
枫叶轻语6 天前
【Nginx 从入门到实战 09】前后端统一入口:部署页面与接口的完整配置
nginx·全栈
无言听风雨丶6 天前
Nginx 深度实战:从架构原理到生产排错
运维·nginx·架构