admin

nginx unknown directive stream解决办法

admin WEB运维 2021-08-25 8211浏览 0

nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。比如在内网有一个mysql服务,想暴露到公网上去使用,就可以通过nginx代理的方式通过nginx来进行内网mysql的访问。


首先用nginx -V 查看有没有安装这个模块,(yum安装的默认都有这个模块)然后用find查看下库文件路径,不同的操作系统位置不同。


#find / -name "ngx_stream_module.so"

/usr/lib64/nginx/modules/ngx_stream_module.so



如果没有找到,执行


yum -y install nginx-all-modules.noarch


在nginx头部加入

load_module /usr/lib64/nginx/modules/ngx_stream_module.so;


测试环境用nginx代理mysql tcp端口示例

stream {

    upstream mysql63306 {

        hash $remote_addr consistent;

        server 192.168.1.22:3306 max_fails=3 fail_timeout=300s;

    }

upstream mysql64406 {

        hash $remote_addr consistent;

        server 192.168.1.12:3306 max_fails=3 fail_timeout=300s;

    }

upstream mysql62206 {

        hash $remote_addr consistent;

        server 192.168.1.14:3306 max_fails=3 fail_timeout=300s;

    }

upstream mysql65506 {

        hash $remote_addr consistent;

        server 192.168.1.16:3306 max_fails=3 fail_timeout=300s;

    }

upstream mysql61106 {

        hash $remote_addr consistent;

        server 192.168.1.11:3306 max_fails=3 fail_timeout=300s;

    }

upstream mysql60006 {

        hash $remote_addr consistent;

        server 192.168.1.83:3306 max_fails=3 fail_timeout=300s;

    }

upstream mysql61206 {

        hash $remote_addr consistent;

        server 192.168.1.19:3306 max_fails=3 fail_timeout=300s;

    }

    server {

        listen 63306;

        proxy_connect_timeout 30s;

        proxy_timeout 600s;

        proxy_pass mysql63306;

    }

    server {

        listen 64406;

        proxy_connect_timeout 30s;

        proxy_timeout 600s;

        proxy_pass mysql64406;

    }


    server {

        listen 62206;

        proxy_connect_timeout 30s;

        proxy_timeout 600s;

        proxy_pass mysql62206;

    }

    server {

        listen 65506;

        proxy_connect_timeout 30s;

        proxy_timeout 600s;

        proxy_pass mysql65506;

    }

    server {

        listen 61106;

        proxy_connect_timeout 30s;

        proxy_timeout 600s;

        proxy_pass mysql61106;

    }

    server {

        listen 60006;

        proxy_connect_timeout 30s;

        proxy_timeout 600s;

        proxy_pass mysql60006;

    }

    server {

        listen 61206;

        proxy_connect_timeout 30s;

        proxy_timeout 600s;

        proxy_pass mysql61206;

    }

}


版权声明

本站《作品展示》类文章均为原创,转载必须注明出处,技术分享类文章部分来源于网络,版权归原作者所有,若侵权请留言。