端口 80 无法访问 Amazon ec2

端口 80 无法访问 Amazon ec2

我已经启动了 Amazon EC2 实例(Linux Redhat)...还有 Apache。

但当我尝试:

http://MyPublicHostName

我没有收到任何回复。

我已确保我的安全组允许访问端口 80。
我肯定可以访问端口 22,因为我是通过 ssh 登录到实例的。
在 Amazon EC2 Linux 实例中,当我执行:
$ wget时http://localhost
,我确实得到了响应。这证实了 Apache 和端口 80 确实运行良好。

由于 Amazon 在 VPC 中启动实例,我是否必须在那里执行任何操作...事实上,我甚至无法 ping 该实例,尽管我可以 ssh 到它!

有什么建议吗?

编辑
请注意,我之前已编辑过 /etc/hosts 文件,以使 389-ds(ldap)安装正常工作。

我的 /etc/hosts 文件如下所示(IP 地址如 wxyz 所示)
127.0.0.1 localhost.localdomain localhost
wxyz ip-wxyz.us-west-1.compute.internal
wxyz ip-wxyz.localdomain

答案1

默认情况下,RedHat 防火墙会阻止某些端口,包括端口 80。这是通过安全组在 Amazon AWS 上配置的防火墙的补充。


您可以自定义防火墙以允许您的 HTTP 流量。

$ sudo system-config-firewall-tui

防火墙httpconfigforredhat

另一个选择是完全禁用内部防火墙。但是,请确保您知道自己在做什么。

答案2

如果您之前没有接触过安全组设置,它们已被关闭。

  • 首先,您需要找到您的服务器被分配到哪个安全组。
  • 在实例列表中单击服务器,然后您会看到下面的实例描述
  • 右栏是安全组名称。在查看规则链接下,您可以看到打开了哪些端口。默认只有 22。如果没有 80 端口,则需要添加它。
  • 接下来您需要添加 80 端口规则。从左侧菜单中打开安全组并单击您的安全组。
  • 下面您可以看到有关该团体的详细信息。
  • 单击“入站”选项卡并从菜单中选择 HTTP(或添加自定义端口)。如果您需要公共访问,请保留源为 0.0.0.0/0。
  • 单击添加规则。注意!您还需要单击应用规则更改,尽管第一次单击后规则已出现在列表中。等待应用的更改在选项卡标题处用星号表示。
  • 无需添加传出,因为这是默认打开的(您可以检查是否有规则 ALL 0.0.0.0/0)

就是这样。

答案3

检查您是否iptables启用了任何规则。

iptables -L

如果服务器上有一些规则,您可以清除它们。

iptables -F

答案4

您可以采取一些措施来排除故障。

1) 由于您无法将基本域指向 CNAME,因此您需要将 www.mypublichostname.com 指向 ec2-wxyz.us-west1.blah。或者(可能是一个更好的主意)将弹性 IP 附加到机器,并将 A 记录和所有其他记录指向 IP 地址。

2) 您提到您正在 VPC 中运行此实例。使用 VPC 安全组,您必须定义传入和传出安全权限。您需要确保端口 80 和 8080 向 0.0.0.0/0(所有人)或您的特定 IP、子网等开放传入和传出。

3) VPC 路由可能稍微复杂一些,具体取决于您如何处理它。如果您使用跳转盒或代理盒来提高安全性,则必须将其设置为传出流量的网关。为此实例分配弹性 IP 可以缓解此问题。

希望这可以帮助。

相关内容