AWS EC2实例启动脚本不生效无法显示Hello World是什么原因
故障排查及修复方案
1. 启动脚本错误修复
你当前使用的启动脚本存在两处核心错误,会直接导致httpd服务部署失败:
- 安装包名错误:Amazon Linux 2 环境下 httpd 的软件包名为
httpd,而非httpd.service,错误的包名会导致httpd根本没有被安装,后续启动命令执行无效 - 服务名不统一:
systemctl enable建议使用完整服务名httpd.service避免识别歧义
修复后的完整启动脚本如下:
#!/bin/bash # Amazon Linux 2 用户数据启动脚本 yum update -y yum install -y httpd systemctl start httpd.service systemctl enable httpd.service echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html
2. 剩余访问异常排查项
脚本修复完成重新部署实例后如果仍然无法访问,按以下优先级排查:
- 安全组规则检查:确认实例关联的安全组入站规则已开放 80端口(HTTP协议),允许你当前的客户端公网IP访问,测试场景可临时放通0.0.0.0/0,生产环境禁止配置
- 公网连通性检查:确认实例部署在公有子网,已分配公网IP/弹性公网IP,子网关联的路由表存在指向互联网网关的默认路由
- 实例内部防火墙检查:如果使用的不是默认Amazon Linux 2镜像,可能默认开启firewalld服务,执行以下命令放行HTTP流量:
firewall-cmd --add-service=http --permanent && firewall-cmd --reload - 服务状态验证:登录实例执行
systemctl status httpd.service确认服务处于运行状态,执行curl 127.0.0.1确认本地访问能正常返回Hello World内容
内容的提问来源于stack exchange,提问作者Bhargav Thakar
相关产品推荐
相关产品推荐

