同一呆板下通过HTTP域名访问其他服务器进程返回504问题记载 ...

打印 上一主题 下一主题

主题 1878|帖子 1878|积分 5634

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我这边项目的服务器有好几个类型节点,每个节点为一个进程,差异节点间通过HTTP来通讯,当前这几个类型的节点都部署在同一台呆板上,然后我再测试某个节点到另一个节点的http通讯时,发现一个奇怪的现象:
   1. 我先通过“http://127.0.0.1:8888”这种方式去访问另一个节点的话,没有问题。
  2. 我再把ip改为了“域名”(比如域名为:abc.efg.com), 域名是通过负载平衡和这台呆板做了关联,通过“https://abc.efg.com”去访问就一直给我返回状态码“504”(gateway time-out),然后我在其他呆板上去访问“https://abc.efg.com”(curl -X POST https://abc.efg.com)就没有问题。
  后面想到会不会是安全组的“入站规则”那里没有开放端口导致的?于是把“8888”端口也加进去了,再回到问题呆板上通过域名访问就没问题了。
 
根本缘故因由分析​

​(1) 负载平衡(LB)的流量路径​



  • ​当通过域名 abc.efg.com 访问时​​:

    • 流量路径:客户端 → 负载平衡(LB)→ 后端服务器(你的呆板)。
    • LB 必要将请求转发到后端服务器的 8888 端口。

  • ​安全组的作用​​:

    • 安全组控制的是 ​​后端服务器(你的呆板)的入站流量​​。
    • ​未开放 8888 时​​:

      • ​外部呆板​​:LB 的 IP 不在安全组限制范围内(LB 通常有独立 IP 白名单),流量可以到达你的呆板。
      • ​当地呆板​​:通过 LB 访问时,LB 会将流量 ​​回源到同一台呆板​​,此时触发了安全组规则,丢弃了 8888 端口的入站流量。

    • ​开放 8888 后​​:当地回源流量被答应,问题解决。

​(2) 为什么 127.0.0.1 不受影响?​



  • 127.0.0.1 是 ​​当地回环地址​​,完全绕过网络栈和安全组,直接由内核处理,因此不受安全组限制。
​(3) 为什么外部呆板通过 LB 能访问?​



  • 外部呆板的请求颠末 LB 后,LB 可能使用 ​​内网 IP​​ 或 ​​非 8888 端口​​ 转发到你的呆板(例如 LB 到后端默认走 80/443),而你的安全组答应这些端口。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

玛卡巴卡的卡巴卡玛

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表