一、简要说明

当编译完成后的Nginx需要添加新的模块时,我们需要添加该模块重新编译。

比如我这里的需求是:编译好Nginx后,我需要添加--with-http_v2_module --with-stream模块

所有步骤完成之后,/usr/local/nginx/sbin/nginx -s reload 有可能不生效

最好重启下Nginx /usr/local/nginx/sbin/nginx -s restart

二、添加步骤

1、查看现有Nginx的安装版本和已编译的参数

# 进入Nginx的安装目录
$ cd /usr/local/nginx/sbin

# 查看现有Nginx的版本和已编译的参数
$ ./nginx -V

2、在官方下载相对应的版本 

nginx: downloadhttps://nginx.org/en/download.html

 3、带上新模块重新编译

# 进入刚下载解压出来的Nginx安装目录
$ cd /data/soft/nginx-1.20.1

# 带上新模块重新编译
$ ./configure --prefix=/usr/local/nginx/ --sbin-path=/usr/local/nginx/sbin/ --with-http_ssl_module --with-http_v2_module --with-stream --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --error-log-path=/usr/local/nginx/logs/error.log --http-log-path=/usr/local/nginx/logs/access.log --http-fastcgi-temp-path=/usr/local/nginx/fastcgi_temp --http-client-body-temp-path=/usr/local/nginx/client_body_temp --http-proxy-temp-path=/usr/local/nginx/proxy_temp --http-uwsgi-temp-path=/usr/local/nginx/uwsgi_temp --http-scgi-temp-path=/usr/local/nginx/scgi_temp

# 编译 注意:这里只有make,一定不要手贱顺手执行了make install,不然会覆盖安装的
$ make

三、平滑重启

上一步执行完成后,会在当前目录下生成objs目录,其中的nginx文件即为新的二进制文件

1、备份原来的Nginx文件 

# 进入Nginx的原安装目录
$ cd /usr/local/nginx/sbin

# 备份原Nginx运行脚本文件
$ cp -rf nginx nginx_bak

2、替换nginx二进制文件

$ cp -f /data/soft/nginx-1.20.1/objs/nginx /usr/local/nginx/sbin/nginx

3、正确性检查

$ /usr/local/nginx/sbin/nginx -t

 4、重新Reload Nginx

$ /usr/local/nginx/sbin/nginx -s reload

5、查看最终编译的新模块

$ /usr/local/nginx/sbin/nginx -V

需要添加--with-http_v2_module --with-stream模块已成功加上

6、重新加载Nginx 

$ /usr/local/nginx/sbin/nginx -s reload

特别注意:重新编译了Nginx,只是/usr/local/nginx/sbin/nginx -s reload 新增加模块不会报错,但Nginx新增的配不会生效。这个折腾了很久,一直以为配置问题。

如果不生效,确保不想要业务的情况下,可以把一台Nginx节点下线,使用 /usr/local/nginx/sbin/nginx stop停止后,再重新启动Nginx。

参考资料

Nginx添加新模块&平滑重启_loyachen的专栏-CSDN博客_nginx 添加模块需求当编译完成后的Nginx需要添加新的模块时,我们需要添加该模块重新编译。比如我这里的需求是:编译好Nginx后,我需要添加nginx-rtmp-module模块环境[系统环境:CentOS release 6.7 (Final) nginx/1.8.1]nginx的安装位置:/opt/nginx nginx软件包位置:/opt/software/nginx-1.8.1准备下载新模块下载需要https://blog.csdn.net/loyachen/article/details/50902667

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐