我想解决我在连接到我的 Amazon Elastic Compute Cloud (Amazon EC2) Windows 实例上托管的网站时遇到的问题。
简短描述
当在 Amazon EC2 实例上运行的网站不可用或无法访问时,请检查以下配置:
- 该实例正在运行并通过了状态检查。
- 该实例正确启动。
- 您的实例上的 CPU、磁盘或内存未被过度使用。
- 安全组和网络访问控制列表允许正确端口上的流量,而您的实例的路由表默认为互联网网关。
- 您的实例具有正确的 DNS 配置。
- Web 服务器正在运行,并且防火墙允许访问。
- TLS/SSL 证书对 HTTPS 连接有效。
解决方法
检查实例是否正在运行并通过状态检查
确保您的实例在 Amazon EC2 控制台中列为 Running(正在运行)。如果您的实例未列为 Running(正在运行),请参阅为什么我的 EC2 Windows 实例因实例状态检查失败而关闭?
检查实例是否正确启动
检查您的实例上的 CPU、磁盘或内存是否被过度使用
检查您的实例的安全组、网络 ACL 和路由表
检查实例的 DNS 配置是否正确
- 如果您的网站使用 Amazon Route 53 DNS 服务,请检查您是否已正确配置 DNS 记录。有关详细信息,请参阅为什么我无法访问使用 Route 53 DNS 服务的网站?
- 确保为您的实例分配弹性 IP 地址。如果您停止并启动实例,则弹性 IP 地址仍与您的实例相关联。
- 确保将公共 IP 地址或弹性 IP 地址映射到 A 记录。
- 如果您使用其他 DNS 托管服务,请确保在网站注册的域上更新该网站的名称服务器。
检查 Web 服务器和防火墙设置
- 在 Windows 服务管理器中运行以下命令以检查您的 Web 服务器是否正在运行:
net Stop W3SVC
net Start W3SVC
iisreset/restart
- 如果您的 Web 服务器未运行或您的防火墙不允许访问,则用户无法连接到您的网站。要检查您的实例是否在指定端口上响应网站,请在远程计算机上运行以下 PowerShell 命令:
**注意:**请将示例值替换为您的值。
tnc <example-public-IP> -port <example-port-number>
tnc <example-DNS-website-name> -port <example-port-number>
- 要检查绑定到网站的端口是否处于侦听状态,请在您的实例上运行以下命令:
netstat -anob | findstr /i 80
netstat -anob | findstr /i 443
输出示例
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 4
- 检查您的 Windows 防火墙是否阻止端口 80 或 443 上的端口连接。
要对无法访问的端口进行故障排除,请参阅为什么我无法连接到 EC2 Windows 实例上的端口?
检查 TLS/SSL 证书是否对 HTTPS 连接有效
相关信息
为什么我无法连接到托管在我的 EC2 实例上的网站?