我在 EC2 实例上托管了一个网站。如何允许我的用户连接到 HTTP (80) 或 HTTPS (443)?

上次更新时间:2017 年 12 月 18 日

我在一个 EC2 实例上托管我的网站,我希望用户通过 HTTP(端口 80)或 HTTPS(端口 443)连接到我的网站。该如何操作?

解决方法

要允许流量通过端口 80 和 443,您必须配置关联的安全组和网络访问控制列表(网络 ACL)。

安全组规则

对于 HTTP 流量,在端口 80 上添加一条来自源地址 0.0.0.0/0 的入站规则。对于 HTTPS 流量,在端口 443 上添加一条来自源地址 0.0.0.0/0 的入站规则。这些入站规则允许来自 IPv4 地址的流量。要允许 IPv6 流量,您需要在相同的端口上添加来自源地址 ::/0 的入站规则。有关创建或修改安全组的更多信息,请参阅使用安全组

由于安全组是有状态的,系统会自动允许从实例到用户的返回流量,因此您无需修改安全组的出站规则。

下例演示了在端口 80 和 443 上允许 IPv4 和 IPv6 流量的安全组规则:

入站规则

类型 协议 端口范围
HTTP (80) TCP (6) 80 0.0.0.0/0
HTTP (80) TCP (6) 80 ::/0
HTTPS (443) TCP (6) 443 0.0.0.0/0
HTTPS (443) TCP (6) 443 ::/0
443

网络 ACL

默认网络 ACL 会允许所有入站和出站流量。如果您使用具有更多限制的规则的自定义网络 ACL,则需要明确允许流量通过端口 80 和 443。网络 ACL 是无状态的,因此入站和出站规则都需添加,才能支持到您的网站的连接。有关修改网络 ACL 规则的更多信息,请参阅网络 ACL

注意:如果您的用户使用 IPv6 连接,并且您的 Amazon Virtual Private Cloud (Amazon VPC) 具有关联的 IPv6 CIDR 块,则您的默认网络 ACL 将会自动添加允许所有入站和出站 IPv6 流量的规则。

下例演示了一个允许流量通过端口 80 和 443 的自定义网络 ACL:

入站规则

规则编号 类型 协议 端口范围 允许/拒绝
100 HTTP (80) TCP (6) 80 0.0.0.0/0 允许
101 HTTPS (443) TCP (6) 443 0.0.0.0/0 允许
102 HTTP (80) TCP (6) 80 ::/0 允许
103 HTTPS (443) TCP (6) 443 ::/0 允许
* 所有流量 全部 全部 ::/0 拒绝
* 所有流量 全部 全部 0.0.0.0/0 拒绝
HTTPS (443)
HTTPS (443)
HTTPS (443)
HTTPS (443)

出站规则

规则编号 类型 协议 端口范围 目标 允许/拒绝
100 自定义 TCP 规则 TCP (6) 1024-65535 0.0.0.0/0 允许
101 自定义 TCP 规则 TCP (6) 1024-65535 ::/0 允许
* 所有流量 全部 全部 ::/0 拒绝
* 所有流量 全部 全部 0.0.0.0/0 拒绝

注意:如果将上面的安全组和网络 ACL 示例配置结合使用,则所有的互联网用户都可以连接到网站。如果网站拥有者或管理员希望通过 EC2 实例访问其他网站,则必须允许以下配置:

  • 允许流量通过端口 80 或端口 443 到达目标 IP 地址的网络 ACL 出站规则
  • 允许流量通过临时端口 (1024-65535) 的网络 ACL 入站规则
  • 允许出站流量安全组规则

这篇文章对您有帮助吗?


您是否需要账单或技术支持?