nginx配置nacos集群转发及stream转发tcp四层配置
1 前言
Nacos配置集群后有多个地址,需要配置slb进行统一接口接入,由于开发代码指定Tcp协议,故nginx转发只能使用四层转发,nginx需要stream模块插件来实现。
1.1 安装nginx
1.1.1 安装Nginx
此处不再赘述nginx安装步骤。
1.2 配置stream模块
1.2.1 查看nginx目前模块
/usr/local/nginx/sbin/nginx -V 默认没有安装
如图:
1.2.2 添加模块 stream
重新解压同版本nginx安装包,进入目录进行编译添加stream模块
cd /usr/local/nginx-1.16.0
#需要把之前的参数带上
./configure --prefix=/usr/local/nginx --with-pcre=/app/software/pcre-8.43 --with-zlib=/app/software/zlib-1.2.11 --with-openssl=/app/1.1.1c --with-http_ssl_module --with-stream
然后make (切忌不要输入make install,否则会覆盖掉nginx文件)
只有make后才会产生新的nginx文件
1.2.3 停止Nginx
使用以下命令停止运行的nginx服务:
ps -ef | grep nginx|grep -v grep|cut -c 9-15|xargs kill -9
1.2.4 拷贝Nginx启动文件
先备份原本的nginx文件再拷贝:
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp /app/software/nginx-1.16.0/objs/nginx /usr/local/nginx/sbin/
1.2.5 启动Nginx
/usr/local/nginx/sbin/nginx
查看依赖模块 /usr/local/nginx/sbin/nginx -V
2 配置nginx四层tcp转发nacos
2.1 修改Nginx的配置文件
修改Nginx.conf添加stream配置进行tcp转发,注意,stream和http模块同级别,千万不要配置在http的{}内,否则将报错stream
vi /usr/local/nginx/conf/nginx.conf 底部增加stream模块,默认是没有这个的,如果你的有就直接配置一个加载指定配置文件即可;
以下是加载的指定配置文件:
2.1.1 重新加载配置文件生效
/usr/local/nginx/sbin/nginx -s reload
2.1.2 校验
校验
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
2.1.3 启动和停止
2、启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
3、停止
/usr/local/nginx/sbin/nginx -s stop
3 附录<常见报错>
3.1 启动nginx返回stream报错
nginx: [emerg] "stream" directive is not allowed here in /usr/local/nginx/conf/nginx.conf:7
解决:stream模块和http同级别,更改配置存放位置
3.2 加载nginx报错
unknown directive “stream” in /usr/local/nginx
解决:这是因为缺少stream模块,需要按照以上操作进行增加模块,若是apt或者yum安装的,则进行在线安装模块即可,此处不做赘述。