![将 DNS 转发到特定端口以访问 docker 容器](https://linux22.com/image/772127/%E5%B0%86%20DNS%20%E8%BD%AC%E5%8F%91%E5%88%B0%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3%E4%BB%A5%E8%AE%BF%E9%97%AE%20docker%20%E5%AE%B9%E5%99%A8.png)
我有 1 个域名和 1 个子域名:
example.com.au
api.example.com.au
我有 2 个 Docker 容器运行 2 个不同的应用程序、一个前端网站和一个 API。这些容器可通过 8080(前端)和 3000(后端)访问。
两个域都在 HTTPS 上的 ELB 上,并且我已经设置了 IP 路由以将流量从 http 和 https 转发到端口 8080,因此前端 Web 应用程序可以正常加载,但 Web 应用程序需要通过不同的域(子域)访问 API,但是我完全不知道如何让 api.example.com.au 从端口 3000 上的 API 加载数据。
我认为也许一个 apache 容器接受来自 example.com.au 和 api.example.com.au 的所有流量,然后通过不同的端口代理到适当的容器,但根据我发现的一些示例,我也不确定如何实现这一点......或者即使这是最好的方法。
答案1
DNS 仅为 IP 查找提供名称,这与端口无关。
您可能应该了解的是虚拟主机如何在 Web 服务器中工作,之后您可以使用反向代理功能。或 HTTP 重定向以提供具有不同端口的 URL(我不建议您这样做)
但这里主要要强调的是,DNS 永远不能用来控制端口或者 URL 的部分,只能用来控制给定主机名应该连接到哪个 IP。