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

上次更新时间:2020 年 10 月 30 日

我在一个 Amazon Elastic Compute Cloud (Amazon 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

网络 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 拒绝

出站规则

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

这篇文章对您有帮助吗?


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