Apache虚拟主机配置正常但WordPress站点无响应故障排查求助
故障排查方向及虚拟主机配置验证方法
可能的故障点
1. EC2实例网络与状态异常
- 检查安全组/网络ACL:确认入站规则允许80(HTTP)、443(HTTPS)端口的公网访问,出站规则允许Apache正常回包。
- 检查实例资源占用:执行
df -h查看磁盘是否已满,top或htop检查CPU、内存是否耗尽——磁盘满会导致Apache无法读取或写入文件,资源耗尽会让服务无响应。 - 确认弹性IP绑定:检查EC2实例的弹性IP是否未意外解绑,确保公网IP指向正确。
2. Apache服务运行异常
- 确认服务状态:执行
systemctl status httpd(Debian/Ubuntu用apache2),查看服务是否处于运行状态,有无崩溃重启记录;若服务未启动,执行systemctl restart httpd尝试重启。 - 检查端口监听:用
ss -tulpn | grep httpd查看Apache是否在监听80/443端口,避免端口被其他进程占用。
3. 文件系统与权限问题
- 确认维护页路径:检查
maintenance.html是否放在虚拟主机配置的DocumentRoot目录下,路径无拼写错误。 - 验证文件权限:执行
ls -l /path/to/docroot/maintenance.html,确保Apache运行用户(通常为apache/www-data)拥有读取权限;必要时执行chmod 644 maintenance.html、chmod 755 /path/to/docroot修正权限。 - 排查SELinux限制(仅RHEL/CentOS系):执行
getenforce查看状态,若为Enforcing,临时执行setenforce 0测试,若站点恢复,需配置SELinux规则:chcon -R -t httpd_sys_content_t /path/to/docroot。
4. SSL证书配置异常
- 测试SSL连接:执行
openssl s_client -connect blog.pepegora.com:443,查看证书是否过期、配置路径是否正确——证书失效会导致浏览器拒绝连接,表现为站点无响应。
确认虚拟主机配置正确性的方法
- 查看已加载的虚拟主机:执行
apachectl -S(Debian/Ubuntu用apache2ctl -S),该命令会列出所有生效的虚拟主机,确认你的域名对应的配置存在,ServerName/ServerAlias、DocumentRoot参数匹配预期。 - 本地测试虚拟主机解析:在EC2实例内部执行
curl -H "Host: blog.pepegora.com" http://localhost/test.html(需先在DocumentRoot下放test.html),若能正常返回内容,说明虚拟主机配置生效,问题出在网络层面。 - 检查配置文件包含:确认Apache主配置文件(如
httpd.conf)中存在包含虚拟主机配置的语句(例如Include conf.d/*.conf),避免配置文件未被加载。 - 测试配置生效:临时修改虚拟主机配置(如添加自定义404页),重启Apache后访问不存在的路径,验证配置是否生效。
内容的提问来源于stack exchange,提问作者Devops Cloud
相关产品推荐
相关产品推荐

