如果项目在正常提供服务的过程中,因需求需要,要对nginx添加新的模块,我们可以对其动态添加,而不需要长时间暂停服务。

一、查看安装时的configure参数

  1. $ /usr/local/nginx/nginx -V
  2. # 返回
  3. nginx version: nginx/1.20.2
  4. built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
  5. built with OpenSSL 1.0.2k-fips 26 Jan 2017
  6. TLS SNI support enabled
  7. 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重装

  1. make -j 4 # -j 4 表示使用CPU4个核心同时进行编译,速度可大大提升

三、替换nginx执行文件

使用 objs/nginx 文件 替换你服务器的nginx执行文件,我这里是/usr/local/nginx/nginx
替换前,推荐先备份一下,mv /usr/local/nginx/nginx /usr/local/nginx/nginx.bak

  1. mv /usr/local/nginx/nginx /usr/local/nginx/nginx.bak
  2. cp objs/nginx /usr/local/nginx/nginx

四、测试安装是否成功

  1. /usr/local/nginx/nginx -V

五、重启服务

./nginx -s reload