N欧博allbetginx通过域名进行TCP反向代理

文章正文
发布时间:2024-06-07 13:27

使用Nginx可以实现根据域名进行TCP反向代理到不同的内网服务器。

应用场景

一家公司购买了很多服务器,欧博allbet为了节约成本,使用了阿里云/腾讯云的NAT网关,通过几台网关服务器进行NAT出口,欧博百家乐通过大量内网服务器进行数据计算,节约公网带宽费用且确保了内网服务器不因公网IP泄露导致被攻击。

aliyun.png

(上图来自阿里云)

但是在用作网关的出口服务器上,需要配置SSL域名证书。如果在网关配置域名证书,各个业务对证书的要求不一样,网关服务器管理员疲于运维。因此,通过TCP反向代理到内网服务器,让内网服务器管理员自行配置SSL证书。

Nginx TCP反向代理

使用到了ngx_stream_ssl_preread_module模块。此模块默认没有编译到nginx中。

编译nginx的时候添加--with-stream_ssl_preread_module配置选项。

map $ssl_preread_server_name $name { backend.example.com backend; default backend2; } upstream backend { server 192.168.0.1:12345; server 192.168.0.2:12345; } upstream backend2 { server 192.168.0.3:12345; server 192.168.0.4:12345; } server { listen 12346; proxy_pass $name; ssl_preread on; }

除了根据根据服务器名称选择上游外,还可以根据协议、根据SSL协议版本选择上游。具体配置参考:https://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html

首页
评论
分享
Top