nginx配置nacos集群转发及stream转发tcp四层配置

前言

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

 

配置nginx四层tcp转发nacos

2.1  修改Nginx的配置文件

  修改Nginx.conf添加stream配置进行tcp转发,注意,streamhttp模块同级别,千万不要配置在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.1  启动nginx返回stream报错

nginx: [emerg] "stream" directive is not allowed here in /usr/local/nginx/conf/nginx.conf7

解决:stream模块和http同级别,更改配置存放位置

3.2 加载nginx报错

unknown directive streamin /usr/local/nginx

解决:这是因为缺少stream模块,需要按照以上操作进行增加模块,若是apt或者yum安装的,则进行在线安装模块即可,此处不做赘述。

专业从事搬砖多年,还是在继续搬砖中,厚积薄发~
原文地址:https://www.cnblogs.com/Crazy-Liu/p/14708188.html