V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lsk569937453
V2EX  ›  程序员

TCP 代理主要用在什么地方?

  •  
  •   lsk569937453 · 2023-03-08 10:51:01 +08:00 · 2069 次点击
    这是一个创建于 634 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用过 TCP 代理主要用于 ssh 。 我看了一下 nginx 的 tcp 代理,有的人用来代理 mysql/redis/mqtt 。 如果是 tcp 代理 mysql/redis ,主要的目的是什么呢?防止 mysql/redis 暴漏到外网?如果代理数据库的话,是不是基本用不到负载均衡?

    除了上述提到的几个,TCP 代理还用在什么地方?

    第 1 条附言  ·  2023-03-08 16:21:09 +08:00
    如果代理的后端是 redis/mysql,那么是不是代理这里无法使用连接池了?
    一个请求的流程是:
    请求:client-->proxy(nginx)-->mysql,响应 mysql-->proxy-->client.

    如果 proxy 在请求 mysql/redis 使用连接池的话,那么会出现这样的情景:
    1.第一个请求发送账号密码验证,proxy 和 mysql 建立连接成功,将连接放入 proxy 连接池中。
    2.第二个请求发送账号密码验证,proxy 发现连接池有空闲连接,用验证过的空闲连接去发送账号密码到 mysql/redis ,然后出错。

    有大佬懂这方面的实现吗? nginx 有没有用连接池?如果没有连接池的话,那么性能是不是特别差?
    10 条回复    2023-03-08 20:16:58 +08:00
    yolee599
        1
    yolee599  
       2023-03-08 11:14:49 +08:00
    一个域名对应多个应用
    leeyuzhe
        2
    leeyuzhe  
       2023-03-08 11:26:37 +08:00
    之前代理过视频流,主要是视频服务不对外映射端口,反代一下相当于内网穿透
    zeonll
        3
    zeonll  
       2023-03-08 11:35:18 +08:00
    @yolee599 没太懂,什么场景要一个域名对应多个应用呢
    qoo2019
        4
    qoo2019  
       2023-03-08 11:42:43 +08:00
    目前我司就代理 redis/rmq 这种场景,服务基于 k8s ,然后使用 NodePort 暴露;另外一个场景专线互联地址转发
    zhuifeng1017
        5
    zhuifeng1017  
       2023-03-08 11:50:14 +08:00
    一个简单的用途:绕过运维白名单。
    比如对 mysql/redis/mqtt 配置了白名单时,用 nginx 的 stream mod 代理下
    yolee599
        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
    salmon5
        7
    salmon5  
       2023-03-08 12:29:10 +08:00
    salmon5
        8
    salmon5  
       2023-03-08 12:39:47 +08:00
    https 的 SNI proxy 或者 websocket 的需要长连接的应用(省事用 TCP 代理)
    villivateur
        9
    villivateur  
       2023-03-08 13:09:06 +08:00
    Nginx 一般部署在网关类型的服务器上。
    最典型的应用场景是,我有一台内网高性能服务器跑一个 TCP 应用,然后需要对外提供服务,最好的方法就是在网关上部署 Nginx ,然后反代到这个服务器上。这么做还有个好处是负载均衡,一个 Nginx 可以设多个 upstream 。
    weijancc
        10
    weijancc  
       2023-03-08 20:16:58 +08:00
    tcp 代理主要就是翻墙咯
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2590 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:20 · PVG 13:20 · LAX 21:20 · JFK 00:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.