我用过 TCP 代理主要用于 ssh 。 我看了一下 nginx 的 tcp 代理,有的人用来代理 mysql/redis/mqtt 。 如果是 tcp 代理 mysql/redis ,主要的目的是什么呢?防止 mysql/redis 暴漏到外网?如果代理数据库的话,是不是基本用不到负载均衡?
除了上述提到的几个,TCP 代理还用在什么地方?
1
yolee599 2023-03-08 11:14:49 +08:00
一个域名对应多个应用
|
2
leeyuzhe 2023-03-08 11:26:37 +08:00
之前代理过视频流,主要是视频服务不对外映射端口,反代一下相当于内网穿透
|
4
qoo2019 2023-03-08 11:42:43 +08:00
目前我司就代理 redis/rmq 这种场景,服务基于 k8s ,然后使用 NodePort 暴露;另外一个场景专线互联地址转发
|
5
zhuifeng1017 2023-03-08 11:50:14 +08:00
一个简单的用途:绕过运维白名单。
比如对 mysql/redis/mqtt 配置了白名单时,用 nginx 的 stream mod 代理下 |
6
yolee599 2023-03-08 12:24:44 +08:00 via Android
@zeonll 就比如 mysql.xxx.com 转发到 127.0.0.1:1234 ,redis.xxx.com 转发到 127.0.0.1:1235 ,my.xxx.com 转发到 127.0.0.1:1236
|
7
salmon5 2023-03-08 12:29:10 +08:00
@yolee599 #6 你这个功能,nginx 社区版( https://nginx.org/en/download.html)实现不了吧?
|
8
salmon5 2023-03-08 12:39:47 +08:00
https 的 SNI proxy 或者 websocket 的需要长连接的应用(省事用 TCP 代理)
|
9
villivateur 2023-03-08 13:09:06 +08:00
Nginx 一般部署在网关类型的服务器上。
最典型的应用场景是,我有一台内网高性能服务器跑一个 TCP 应用,然后需要对外提供服务,最好的方法就是在网关上部署 Nginx ,然后反代到这个服务器上。这么做还有个好处是负载均衡,一个 Nginx 可以设多个 upstream 。 |
10
weijancc 2023-03-08 20:16:58 +08:00
tcp 代理主要就是翻墙咯
|