我正在尝试从外部通过子域访问具有内部 IP 的应用程序。
根据我的研究,当谈到运行 apache 的 http 时,内部有 DNS 服务器似乎是可行的。
但是如果应用程序不是网站,并且不使用 apache,该怎么办?
我想做的是
如果在 abc.mydomain.com 上请求端口 8000,则它指向 192.168.0.1:8000
如果在 def.mydomain.com 上请求端口 8000,则它指向 192.168.0.2:8000
我一直在使用公共 IP 地址而不是内部地址,并且一直运行良好,但现在我买不起公共 IP 地址,正在寻找解决方案。谢谢!
答案1
DNS 将名称解析为 IP 地址的典型用例在 IP 地址相同时不会有帮助。不同的 A 记录解析为相同的 IP 地址,从 IP 层的角度来看,它们具有相同的目的地。
使用可识别应用程序的负载平衡器进行基于名称的虚拟托管。就像您引用的链接一样,Apache httpd 使用 http Hosts 标头。在第 7 层区分请求。
最终的解决方案是 IPv6。每个子网都有一个 /64,每个主机都有一个公共 IP,并且不再按 IP 计费。