首次搭建Amazon EC2 Ubuntu 16 LAMP站点无法通过浏览器访问求助
解决EC2 Ubuntu 16服务器Apache默认页无法访问(504网关超时)的问题
刚搭完EC2就碰到这种情况太常见了,我帮你一步步排查解决:
1. 先确认Apache服务是否正常运行
SSH登录服务器后,先检查Apache的运行状态:
sudo systemctl status apache2
如果显示inactive (dead)或类似未运行状态,先启动服务:
sudo systemctl start apache2
为了避免服务器重启后服务中断,设置开机自启:
sudo systemctl enable apache2
2. 检查EC2安全组(最容易忽略的关键配置)
EC2的安全组相当于虚拟防火墙,默认只开放了SSH(22端口),必须手动添加HTTP(80端口)的入站规则:
- 登录AWS控制台,找到你的EC2实例,点击「安全组」进入配置页面
- 切换到「入站规则」标签,点击「编辑入站规则」
- 添加一条规则:类型选「HTTP」,端口范围填「80」,来源选「0.0.0.0/0」(测试阶段允许所有IP访问,后续可改为你自己的IP提升安全性)
- 保存规则
3. 检查Ubuntu本地防火墙(ufw)
Ubuntu默认可能启用了ufw,要确保它允许80端口的流量:
先查看当前防火墙状态:
sudo ufw status
如果看不到80/tcp相关的允许规则,添加规则:
sudo ufw allow 80/tcp
再用status命令确认规则已生效。
4. 测试服务器本地访问是否正常
在EC2服务器上用curl访问本地,验证Apache本身是否能正常响应:
curl http://localhost
或者
curl http://127.0.0.1
如果能返回Apache默认页面的HTML代码,说明Apache服务本身没问题,问题出在外部网络连接;如果本地curl也失败,需要检查Apache配置:
- 打开
/etc/apache2/ports.conf,确认存在Listen 80这一行 - 打开
/etc/apache2/sites-available/000-default.conf,确认虚拟主机配置正确,DocumentRoot指向默认的/var/www/html
5. 排查网络层面的其他可能
- 确认浏览器输入的公网IP与服务器实际公网IP一致:在服务器上运行
curl ifconfig.me,返回的IP即为公网IP,和你输入的地址对比 - 检查EC2的网络ACL:默认网络ACL允许所有入站出站流量,如果你修改过,要确保允许80端口的入站流量(规则方向选入站,端口80,动作设为允许)
- 排除本地网络干扰:504网关超时很可能是你本地网络(比如公司防火墙、代理)阻止了访问,可以尝试用手机热点访问,验证是否能打开默认页
内容的提问来源于stack exchange,提问作者sisko
相关产品推荐
相关产品推荐

