V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  xinyifly  ›  全部回复第 1 页 / 共 1 页
回复总数  2
2021-02-21 18:22:08 +08:00
回复了 pydiff 创建的主题 程序员 基于主机名的 Nginx TCP 转发问题
我也作过这个尝试,如果我没理解错的话,我再详细解释一下 @noe132 的答案:

1. mysql 客户端收到 mysql.test.com:8443 的连接配置
2. mysql 通过操作系统的 DNS 功能查询到 mysql.test.com 的 ip 为 69.172.200.109
3. mysql 向 69.172.200.109:8443 发起连接

对于 redis 也是一样的。

所以你可以看到,对于提供 TCP 服务(非 HTTP )的服务器,是收不到域名(或主机名)信息的。

总结:对于目前大部分基于 TCP 而非 HTTP 的服务而言,想通过域名或主机名区分流量是不可能的,因为客户端并未发送域名(或主机名)信息。

其它思路:Linux 内核提供了多个服务复用同一个端口的功能,也有通过嗅探连接类型作转发的代理服务(比如 sslh ),我没有尝试过,楼主有需要可以参考一下。
2018-07-19 17:17:30 +08:00
回复了 revin 创建的主题 酷工作 获顶级 vc 投资的黑湖科技招聘啦( node.js,react,reactnative)
梦幻般的技术栈,能透露一下一年之后的感想么。比如 relay/apollo, k8s 的使用是否达到了期望的水准。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2881 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 06:45 · PVG 14:45 · LAX 22:45 · JFK 01:45
Developed with CodeLauncher
♥ Do have faith in what you're doing.