下载&解压
# wget http://nginx.org/download/nginx-1.14.2.tar.gz # tar xf nginx-1.14.2.tar.gz -C /usr/local添加预启动的执行环境
# yum install pcre pcre-devel openssl-devel gcc gcc-c++ perl-ExtUtils-Embed添加编译安装选项,并检查编译环境
# ./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --with-http_perl_module编译安装
# make && make install增加环境变量
# vim /etc/profile.d/nginx.sh PATH=/apps/nginx/sbin/:$PATH赋予脚本执行权限
chmod +x /usr/lib/systemd/system/nginx.service设置nginx.service为系统服务
systemctl enable nginx.service通过系统服务操作nginx
systemctl start nginx.service systemctl reload nginx.service systemctl restart nginx.service systemctl stop nginx.service systemctl status nginx.service systemctl daemon-reload查看占用80端口的进程
# netstat -lnp|grep :80路径是上面luajit实际安装路径,路径错误安装nginx的lua模块时会报错找不到luajit库
下载ngx_devel_kit模块 # wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz然后解压缩 NDK(nginx development kit)模块是一个拓展nginx服务器核心功能的模块,第三方模块开发可以基于它来快速实现。 NDK提供函数和宏处理一些基本任务,减轻第三方模块开发的代码量。
下载lua-nginx-module模块 # wget https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc7.tar.gz然后解压缩 lua-nginx-module模块使nginx中能直接运行lua
安装相应的模块找到之前已有的模块
# nginx -V输出nginx版本
# nginx -v下载同版本的nginx源码 并解压
# wget http://nginx.org/download/nginx-1.14.2.tar.gz # tar xf nginx-1.14.2.tar.gz && cd nginx-1.14.2备份原Nginx文件
# mv /apps/nginx/sbin/nginx /apps/nginx/sbin/nginx.bak # cp -r /etc/nginx{,.bak}编译安装(平滑) 增加这两个模块 –add-module=/vagrant/lua-nginx-module-0.10.9rc7 –add-module=/vagrant/ngx_devel_kit-0.3.0
./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --with-http_perl_module --add-module=/vagrant/lua-nginx-module-0.10.9rc7 --add-module=/vagrant/ngx_devel_kit-0.3.0 # make # cd objs # cp nginx /apps/nginx/sbin/ # cd /vagrant/nginx-1.14.2 # make upgrade此处出现报错
/apps/nginx/sbin/nginx -t /apps/nginx/sbin/nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or director首先, 根据报错找到文件的真实位置
# find / -name libluajit-5.1.so.2 /usr/local/LuaJIT/lib/libluajit-5.1.so.2找到软连接的参考路径
# ldd $(which /apps/nginx/sbin/nginx) libluajit-5.1.so.2 => not found创建软连接
# ln -s /usr/local/LuaJIT/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2// 再次执行升级
[root@ nginx-1.14.2]# make upgrade成功输出如下:
/apps/nginx/sbin/nginx -t nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok nginx: configuration file /apps/nginx/conf/nginx.conf test is successful kill -USR2 `cat /apps/nginx/logs/nginx.pid` sleep 1 test -f /apps/nginx/logs/nginx.pid.oldbin kill -QUIT `cat /apps/nginx/logs/nginx.pid.oldbin`本次操作给将来留下一个坑, 因为安装模块时所使用的文件下载后解压,就直接用, 没有管理到统一路径, 这可能会给将来留下隐患, 建议统一管理安装时所使用的模块安装包