0

我有一个带有 1 个公共子网和 1 个私有子网的 AWS VPC。我在每个子网中放置了 1 个 EC2 实例。两个 EC2 实例都在端口 80 中运行 Apache http 服务器并有一个 HTML 页面。比如说,在公共 EC2 实例中的 Page1.html 和私有 EC2 实例中的 Page2.html 中。公共 EC2 实例中的 Page1.html 具有指向私有 EC2 实例中的 Page2.html 的 URL。
所有安全组都对所有流量开放,并且 NAT 网关分配有弹性 IP。

当我在浏览器中输入(http:// public IP address:80/Page1.html)时,会显示 Page1.html。但是,当我单击指向私有 EC2 实例中 Page2.html 的 Page1.html 上的链接时,不会显示 Page2.html。请求最终超时。

有没有办法让这两个 Apache 服务器相互通信?

可能值得注意的是:

i)我可以从公共实例ping (私有IP) 。

ii) 从公共实例中,我可以运行“ nc -vz (private ip) 80 ”并得到响应为“ Connection to (private ip) 80 port [tcp/http] succeeded!

iii) 在公共实例中,执行“ curl (private ip) 80 ”命令会获取 HTML 脚本/转储,但也会显示错误“ curl: (7) Couldn't connect to server ”。

4

1 回答 1

1

当您单击网页中的链接时,这两个 Web 服务器不会相互通信,您的 Web 浏览器会直接与两个服务器通信。在这种情况下,您不能在私有子网中拥有其中一台服务器。

于 2020-07-06T20:35:08.387 回答