yum安装的Nginx添加第三方模块支持tcp
需求:生产有个业务是四层转发,nginx1.9开始支持tcp层的转发,通过stream实现的。
实现:在Centos7.6下yum直接安装的nginx,添加新模块支持tcp转发;重新编译Nginx并添加 –with-stream 参数。
查看nginx版本及模块
1 | nginx -V |
下载一个同版本可编译的Nginx
1 | wget http://nginx.org/download/nginx-1.16.1.tar.gz |
备份原Nginx文件
1 | mkdir nginx-backup |
重新编译Nginx
根据nginx -V
查到已有的模块,加上本次需新增的模块: –with-stream,安装之前我们需要安装一些插件,免得在编译的过程中报错。
安装插件
1 | yum -y install libxml2 libxml2-dev libxslt-devel |
编译nginx
1 | cd nginx-1.16.1 |
编译通过,继续验证
编译通过以后,执行make
, make
完成后不要继续输入make install
,以免现在的nginx出现问题。以上完成后,会在objs目录下生成一个nginx文件,进行验证:
1 | /root/nginx-1.16.1/objs/nginx -t |
注:在执行/root/nginx-1.16.1/objs/nginx -t
的时候,提示模块冲突nginx: [emerg] module "ngx_stream_module" is already loaded in /usr/share/nginx/modules/mod-stream.conf:1
,nginx: configuration file /etc/nginx/nginx.conf test failed
,编辑/usr/share/nginx/modules/mod-stream.conf
文件,对第一行进行注释。重新验证ok。该文件就只有一行。
替换Nginx文件并重启
1 | cp /root/nginx-1.16.1/objs/nginx /usr/sbin/ |
检查
1 | nginx -V |