Apache Ubuntu 默认页面未加载

Luc*_*tle 3 apache2 amazon-ec2 amazon-web-services ubuntu-16.04

我正在一个新站点上工作,并且正在启动一个新服务器。我遇到了一个我以前从未遇到过的问题。在服务器 (Ubuntu 16.04) 上安装 LAMP 后,我没有收到默认的 Apache Ubuntu 页面。我收到此错误:

13.59.41.148 took too long to respond.
Run Code Online (Sandbox Code Playgroud)

过去,我使用 Digital Ocean 使用 LAMP 启动了许多服务器,但这是我第一次使用 AWS EC2。是否可能我遗漏了一些与这个新主机有关的东西?

Jac*_*kEm 6

您的实例已经分配了公共 IP,问题在于安全组。

检查默认组,您将 ssh 端口 (22) 打开到 0.0.0.0/0,这意味着整个世界,因为我能够通过 IP/22 访问您的实例。

您可以使用 nc 实用程序来检查连接[ IP 端口]

nc -vz 13.59.41.148 22
Run Code Online (Sandbox Code Playgroud)

要仔细检查 Apache 是否正在加载默认页面,您始终可以通过 ssh 连接到服务器并 curl localhost

curl localhost:80
Run Code Online (Sandbox Code Playgroud)

如果您希望向所有人开放流量,只需将网络规则添加到允许来自 0.0.0.0/0 的 80 的安全组。

但是,在测试阶段之后更好的解决方案是在 ec2 托管网站之前设置负载均衡器。然后,该 Ec2 将托管在专用网络中,流量将从托管在公共网络中的负载均衡器转发。

您可能还应该将超过 22 的访问限制为仅您的 IP/网络。

阅读安全组基础知识: AWS 文档 - 安全组


Cha*_*les 5

亚马逊的AWS解决方案

对于在 Amazon AWS 上进行设置的用户,请确保手动键入 http://,而不是单击其仪表板上的默认链接。我在 Ubuntu 20 上安装 Apache 后遇到了类似的问题。

我通过在浏览器中手动输入地址并确保地址具有 http://[IP_Address] 解决了该问题,而不是单击 Amazon AWS 提供的默认链接,因为默认情况下具有 https://。

最终,确保您的安全组允许 http(端口 80)传入和传出流量。

另外,请确保您已将安全组分配给正在运行的实例。

如果您尚未设置 SSL,则该地址将无法打开,因此在尝试打开默认地址时请确保您使用的是 http:// 而不是 https://。