一、背景
华安证券挖矿活动属于私有化部署,我们的程序会调用到 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;
}
}