共计 1006 个字符,预计需要花费 3 分钟才能阅读完成。
本站提供 Linux 服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme
最近有客户反馈,他使用宝塔面板搭建的网站在执行特定功能时会暂时无法访问,尽管换用其他网络依然能够正常访问。过一段时间,网站又会自动恢复。这种现象看似该客户的 IP 地址被暂时屏蔽。经过专业的运维分析,xiaoz 最终找到了问题根源。
问题排查
排查宝塔防火墙
最初,xiaoz 怀疑可能是宝塔面板中的某个防火墙导致了拦截。然而,经检查发现客户的宝塔面板未安装‘Nginx 免费防火墙’。
分析网站日志
继续检查网站的日志,发现 Nginx 返回了 444 状态码,这意味着服务器没有返回任何信息并关闭了连接,通常用于拒绝恶意请求。
检查 Nginx 配置
追根溯源,我细查了 Nginx 的配置文件,寻找可能触发 444 状态码的规则。使用以下命令遍历所有.conf 文件后,未能找到与 444
状态码相关的具体设置。
# 进入宝塔的 Nginx 目录下
cd /www/server/nginx/conf
# 使用下面的命令查找 444
grep -r --include="*.conf" "444" ./
肉眼继续排查 Nginx 所关联配置,看到有这么一行:include /www/server/panel/vhost/nginx/*.conf;
随后,我进入了 /www/server/panel/vhost/nginx/ 目录,并发现了一个名为 fee_waf.conf
的文件。查看该文件时,注意到其中包含了对 LUA 脚本的调用。
我开始怀疑是这个配置引起,于是将 fee_waf.conf
更名为 fee_waf.conf.bak
进行备份,然后重启 Nginx,最后问题得以解决。
解决办法
该客户使用的腾讯云预装宝塔面板,在宝塔面板后台中,未列出 fee_waf 配置,推测此项可能为默认启用且无法在后台查看,这对新手用户来说可能较为不便。
对于这种情况的解决办法就是直接将 /www/server/panel/vhost/nginx/fee_waf.conf
更名为fee_waf.conf.bak
,然后重启 Nginx
如果您是自己安装的宝塔面板,请在宝塔面板后台“软件商店 – 已安装”看看是否安装了“Nginx 防火墙或 Apache 防火墙”导致,可以单独设置防火墙,对指定网站放行,或者直接关闭这个防火墙。
以上问题仅供参考,当遇到网站故障时还需要具体问题具体分析,如果您需要专业的运维排查,请联系 xiaoz 微信:xiaozme