如果项目在正常提供服务的过程中,因需求需要,要对nginx添加新的模块,我们可以对其动态添加,而不需要长时间暂停服务。
一、查看安装时的configure参数
$ /usr/local/nginx/nginx -V
# 返回
nginx version: nginx/1.20.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_gzip_static_module --with-http_stub_status_module --with-file-aio --with-http_realip_module --with-http_ssl_module
configure arguments: 对应的就是我们当时编译时配置的参数。
我们只需要在 ./configure 后面复制上面那一串,并且新增我们自己要添加的模块即可
./configure —prefix=/usr/local/nginx —sbin-path=/usr/local/nginx/nginx —conf-path=/usr/local/nginx/nginx.conf —pid-path=/usr/local/nginx/nginx.pid —with-http_gzip_static_module —with-http_stub_status_module —with-file-aio —with-http_realip_module —with-http_ssl_module —add-module=/home/data/ngx_devel_kit-0.3.0
二、重新编译
执行完./configure后,我们再执行一遍make,切记,这里不要执行 make install,否则会将nginx重装
make -j 4 # -j 4 表示使用CPU4个核心同时进行编译,速度可大大提升
三、替换nginx执行文件
使用 objs/nginx 文件 替换你服务器的nginx执行文件,我这里是/usr/local/nginx/nginx
替换前,推荐先备份一下,mv /usr/local/nginx/nginx /usr/local/nginx/nginx.bak
mv /usr/local/nginx/nginx /usr/local/nginx/nginx.bak
cp objs/nginx /usr/local/nginx/nginx
四、测试安装是否成功
/usr/local/nginx/nginx -V
五、重启服务
./nginx -s reload