通过nginx stream模块实现TCP反向代理

一、背景

     华安证券挖矿活动属于私有化部署,我们的程序会调用到 api.weixin.qq.com 443  api.mch.weixin.qq.com 443  www.hsxyj.cn 443 这些接口,但是他们的业务服务器【172.20.6.233~235】是不允许访问外网的,只允许接入服务器【172.20.6.232(位于才智中心),172.20.21.232(位于润安中心)】访问指定接口。

二、解决方案

2.1 安装Nginx并启用模块

ngx_stream_core_module这个模块并不会默认启用,需要在编译时通过指定--with-stream参数来激活这个模块。

./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 --with-stream

2.2 服务器转发原理

     在一台业务服务器上通过stream模块监听443端口,转发到接入服务器172.20.6.232的1443端口,然后接入服务器监听1443端口再转发到指定域名和端口

2.3 业务服务器配置

2.3.1 业务服务器【172.20.6.233~235】hosts添加配置

api.weixin.qq.com 172.20.6.233

2.3.2 业务服务器 【172.20.6.233】 nginx配置

stream {
    upstream proxy_apiWeixin {
        server 172.20.6.232:1443;
    }
    server {
        listen 443;
        proxy_pass  proxy_apiWeixin;
    }
}

2.4 接入服务器配置

2.4.1 接入服务器 【172.20.6.232】nginx配置

stream {
    upstream proxy_apiWeixin {
        server api.weixin.qq.com:443;
    }

    server {
        listen 1443;
        proxy_pass  proxy_apiWeixin;
    }
}
发布了161 篇原创文章 · 获赞 40 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/qq_36441027/article/details/102901402
今日推荐