我无法访问我最近在 Ubuntu AWS EC2 实例上设置的 Web 服务器:
client:~ user$ curl yyy.yyy.yyy.yyyy
curl: (7) Failed to connect to yyy.yyy.yyy.yyyy port 80: Operation timed out
Apache 已在 AWS 实例上启动并运行:
ubuntu@server:~$ sudo service apache2 status
* apache2 is running
并且80端口已开放
ubuntu@server:~$ sudo netstat -plunt | grep apache2
tcp6 0 0 :::80 :::* LISTEN 2968/apache2
到目前为止,我在设置 Web 服务器方面还没有那么丰富的经验,但据我所知,Apache 在安装后应该可以立即访问。我的情况可能出了什么问题?
答案1
Web 服务器似乎正在侦听实际端口并根据您的netstat
.
您必须在 AWS 控制台中打开防火墙规则。
看看这个:授权您的 Linux 实例的入站流量
将 SSH 从引用的测试更改为 HTTP。
要启用对实例的网络访问,您必须允许实例的入站流量。要打开入站流量的端口,请向启动实例时与实例关联的安全组添加规则。
使用控制台向入站 SSH 流量的安全组添加规则
在 Amazon EC2 控制台的导航窗格中,选择实例。选择您的实例并查看“描述”选项卡;安全组列出了与实例关联的安全组。选择查看规则以显示对该实例有效的规则列表。
在导航窗格中,选择安全组。选择与您的实例关联的安全组之一。
在详细信息窗格中的入站选项卡上,选择编辑。在对话框中,选择添加规则,然后从类型列表中选择 SSH。
在“源”字段中,以 CIDR 表示法指定计算机的公共 IP 地址。例如,如果您的 IP 地址是 203.0.113.25,请指定 203.0.113.25/32 以以 CIDR 表示法列出此单个 IP 地址。如果您的公司从某个范围分配地址,请指定整个范围,例如 203.0.113.0/24。
选择保存。