NGINX编译完成之后需要新加模块

编译完成之后需要新加模块:

在我们业务部署过程中,如果出现已经编译好的NGINX服务,因为业务需要添加新的工作模块的时候,如果卸载软件重新安装的方式是不被允许的,这样会导致用户访问出现异常中断的情况,因此可以通过重新编译的方式,然后将产生的NGINX启动文件再次复制到之前的启动进程上即可,具体配置实例如下:

因为业务需要,部署Prometheus进行业务监控,Prometheus监控需要使用nginx-module-vts模块,但是在之前的部署过程中没有安装,因此需要新添加安装该模块:

下载软件安装包

下载方式可以在GitHub上进行下载:

vts源码 https://github.com/vozlt/nginx-module-vts

exporter源码 https://github.com/hnlq715/nginx-vts-exporter

下载完成之后可以放置在指定的文件夹上,下载可以通过Windows方式或者是服务器上执行wget等方式下载,然后进行解压:

下载的文件夹为:nginx-module-vts-master.zip

执行解压命令:unzip nginx-module-vts-master.zip

如果提示没有该命令的话 unzip可以使用yum方式安装即可

然后是使用命令查看已经安装的相关模块信息(每个安装的nginx服务的模块不同,以自己实际安装的模块为准

[root@localhost objs]# nginx -V
Tengine version: Tengine/2.3.2
nginx version: nginx/1.17.3
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.1.1d  10 Sep 2019
TLS SNI support enabled
configure arguments: --prefix=/usr/local/services/tengine-2.3.2 --user=www --group=www --with-http_ssl_module --with-http_lua_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-sha1=/usr --with-stream --with-openssl=/usr/local/services/src/openssl-1.1.1d --with-md5=/usr/local/services/src/md5 --with-pcre=/usr/local/services/src/pcre-8.42 --with-luajit-inc=/usr/local/services/include/luajit-2.1 --with-luajit-lib=/usr/local/services/lib --without-select_module --without-poll_module --without-http_userid_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --without-http_upstream_keepalive_module --add-module=modules/ngx_slab_stat --add-module=modules/ngx_http_reqstat_module --add-module=modules/ngx_http_upstream_* --add-module=../ngx_cache_purge-2.3 
[root@localhost objs]# 

然后执行的时候需要将已经安装的模块和需要安装的模块一起cp复制进行configure 操作:例如需要安装的
--add-module=/usr/local/services/src/nginx-module-vts-master

如果提示nginx命令不存在的话 是因为没有设置环境变量,执行设置环境变量即可:

[root@localhost prometheus-2.25.2]# cat /etc/profile.d/nginx.sh 
export NGINX_HOME="/usr/local/services/tengine-2.3.2"
export PATH="$NGINX_HOME/sbin:$PATH"
[root@localhost prometheus-2.25.2]# source  /etc/profile.d/nginx.sh

然后重新编译执行:进入到源文件目录下执行命令:

[root@localhost tengine-2.3.2]# pwd
/usr/local/services/src/tengine-2.3.2
[root@localhost tengine-2.3.2]# 
./configure --prefix=/usr/local/services/tengine-2.3.2 --user=www --group=www --with-http_ssl_module --with-http_lua_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-sha1=/usr --with-stream --with-openssl=/usr/local/services/src/openssl-1.1.1d --with-md5=/usr/local/services/src/md5 --with-pcre=/usr/local/services/src/pcre-8.42 --with-luajit-inc=/usr/local/services/include/luajit-2.1 --with-luajit-lib=/usr/local/services/lib --without-select_module --without-poll_module --without-http_userid_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --without-http_upstream_keepalive_module --add-module=modules/ngx_slab_stat --add-module=modules/ngx_http_reqstat_module --add-module=modules/ngx_http_upstream_* --add-module=../ngx_cache_purge-2.3  --add-module=/usr/local/services/src/nginx-module-vts-master

#此处添加了--add-module=/usr/local/services/src/nginx-module-vts-master模块
编译完成之后,进行make操作,make完成之后即可,不需要make install

然后将安装源目录下的 ./objs/nginx复制到安装后的/nginx/sbin目录下(如果怕出错可以先将../sbin下的nginx备份)

相对路径为:
cp -f  ./objs/nginx    /usr/local/services/tengine-2.3.2/sbin/nginx
绝对路径为:
cp  -f /usr/local/services/src/tengine-2.3.2/objs/nginx    /usr/local/services/tengine-2.3.2/sbin/nginx

##添加-f 参数可以实现强制复制的模式

然后重启nginx即可,一般执行软重启即可 不需要进行restart中断式重启;

[root@localhost objs]# systemctl  reload nginx.service 

然后重新执行查看安装模块操作:

[root@localhost objs]# nginx -V

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值