Apache2+Virtualmin环境下单一域名网站无法加载且无访问日志的故障排查求助
Apache2+Virtualmin环境下单一域名网站无法加载且无访问日志的故障排查求助
Hey 各位,我碰到个头疼的问题,想请大家帮忙分析下:我的服务器是Ubuntu 20.04系统,搭了apache2和Virtualmin面板。其中有一个域名的网站时不时会突然挂掉,浏览器访问直接超时,但同一服务器上的其他域名都运行得好好的。
最奇怪的是,出问题的时候这个域名连访问日志都没生成,我猜请求根本就没传到apache那里。每次重启apache之后,这个网站就又能正常访问了。之前几周前出现过一次,我以为是偶然事件就没当回事,结果今天又重演了,现在完全摸不着头绪——毕竟连日志都没给线索...
结合你的环境,我整理了几个可以先尝试的排查方向:
- 核对Virtualmin虚拟主机配置:先检查这个异常域名的Virtualmin配置有没有问题,比如监听端口、虚拟主机规则是不是和其他正常域名冲突,或者有没有触发Virtualmin的资源配额、防火墙限制。可以用命令
sudo apache2ctl -S列出所有虚拟主机的监听配置,对比这个域名和正常域名的差异。 - 排查apache进程与连接状态:故障发生时,用
netstat -anp | grep apache2或者ss -tulpn | grep apache2查看apache的连接情况,看看有没有针对这个域名的连接被卡住,或者apache进程是不是出现僵死。另外一定要检查apache的错误日志(比如/var/log/apache2/error.log或者对应域名的单独错误日志),说不定能找到访问日志没记录的隐性错误。 - 验证网络与DNS层面:虽然其他域名正常,但还是要确认这个域名的DNS解析是否稳定,有没有出现解析异常导致请求没到服务器。本地可以用
dig或nslookup测试解析,服务器上用tcpdump抓包验证:sudo tcpdump host 你的域名 and port 80(HTTPS就换成443),如果抓不到包,问题可能在网络或DNS;如果抓到了但apache没处理,那就是apache或Virtualmin的配置问题。 - 检查服务器资源占用:故障发生时,用
top或htop看看CPU、内存、磁盘IO的使用情况,有没有因为资源耗尽导致这个域名的请求被阻塞?不过其他域名正常的话这个可能性偏低,但还是值得排查。 - 排查PHP-FPM(如果使用):如果这个网站用了PHP-FPM,看看对应域名的PHP-FPM进程池是不是挂了,或者进程数耗尽。可以查看PHP-FPM的日志文件,比如
/var/log/php7.4-fpm.log(版本根据你的实际情况调整),看看有没有相关报错。
备注:内容来源于stack exchange,提问作者Whip
相关产品推荐
相关产品推荐

