nginx升级或重新加载模块

目的

在日常运维工作中,有几个场景:

1,nginx web服务升级 。

2,https证书配置后,发现nginx编译没有加入ssl模块。

3,nginx配置后,有nginx: [emerg] the "xxx" parameter requires等等报错。

这些都需要重新编译nginx程序,并把需要的模块加载进去,但是对于不熟悉nginx的人,又头疼和担心,需要重新编译,会不会对原来有啥影响等等。本文就是针对这些场景给出解决方案。

环境

centos7

解决方案

首先,需要说明的是nginx因为其开放性而广受欢迎,其中开放性就是:松耦合,需要啥模块,重新加载编译后替换就可以了,所以完全不需要担心。

安装依赖包

1
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

查看nginx原有模块

1
nginx -V

可以看到没有加载模块

重新编译

1
2
3
4
5
6
7
# 进入到源码包
cd /opt/packages/sunscripts/install/packages/nginx-1.16.0
# 配置
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module
# 编译
make
注意:这里不要进行make install,否则就是覆盖安装

替换

1
2
3
4
5
6
7
8
9
10
# 备份
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
# 停nginx
systemctl stop nginx.service
# 替换
cp ./objs/nginx /usr/local/nginx/sbin/
# 启动
systemctl start nginx.service
# 检查验证
/usr/local/nginx/sbin/nginx -V

总结

按照上面的方案,按照自己需求加载模块,定制自己的nginx。

一键安装nginx脚本

-------------本文结束感谢您的阅读-------------

本文标题:nginx升级或重新加载模块

文章作者:WanDouDuoDuo

发布时间:2019年09月20日 - 18:09

最后更新:2020年08月04日 - 14:08

原始链接:https://wandouduoduo.github.io/articles/88000f44.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

原创技术分享,您的支持将鼓励我继续创作