• 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安装的,则进行在线安装模块即可,此处不做赘述。

    专业从事搬砖多年,还是在继续搬砖中,厚积薄发~
  • 相关阅读:
    数据库的未来:ORM+LINQ+RX
    工具论-科学是实用工具
    事务、锁与原子性
    ORM-面向对象&关系数据库
    swift Class的内存布局
    使用phpexcel导出到xls文件的时候出现乱码解决
    苹果CMS
    js网页如何获取手机屏幕宽度
    常用正则说明
    php中的线程、进程和并发区别
  • 原文地址:https://www.cnblogs.com/Crazy-Liu/p/14708188.html
Copyright © 2020-2023  润新知