话说本站原本是使用coudflare来做基础的域名管理的,刚开始我甚至还开了对AI和一些搜索引擎访问的控制,因为有段时间这些东西差点让我服务器挂掉。
本站访问量虽然不大,但一直以来还是比较稳定的。但突然不知道从何时起,谷歌站长管理平台里就一直提示,搜索引擎的机器人访问网站,全部是403,手动去验证了一下,还是403. 
这就很奇怪了。明明一直好好的,这是不是CF这错呢?
自己瞎折腾
于是我关闭了CF上的ai访问的相关策略,验证,还是不行。。。

又关了CF上的所有相关的限制策略,验证,还是不行。。。
最后,我干脆关闭了CF上的代理,验证,还是不行。。。。
看来,可能是我的服务器上的配置问题了。
这台服务器,原来装的是Oneinstack这个开源的环境部署的工具,后来据说这个工具不再安全被下药了,没法子,所以就开始装上了宝塔,来方便的管理服务器。这宝塔也升级了好多次了,也没有什么问题。这突然出现的情况,搞得我实在是无从下手啊
检查宝塔的防火墙,网站的相关配置,安装的插件,全部都试过了,还是不知道是哪里的问题。。。
AI来帮忙
不过,我运维的水平不行,不代表我们没有办法啊
我用现在流行的AI CODING工具,比如这次我用的是阿里出的QODE,使用它远程登录到服务器,然后让它来帮忙检查一下服务器到底是哪里的毛病。
结果,真的一下子就找到问题了。
原来,是宝塔最新的版本里,自动安装了一个网站统计的模块 site_total ,且管理界面和命令行里都没有相关的控制界面。最奇怪的是,它安装后就自动在后台运行了,这个功能是干啥用的?
配置位置:
Nginx配置:/www/server/panel/vhost/nginx/extension/rplib.cn/site_total.conf
服务进程:/www/server/site_total/site_total (通过Unix socket与Nginx通信)
网站监控报表
实时分析网站运行、用户访问状况,精确统计网站流量、IP、UV、PV、请求、蜘蛛等数据,真假蜘蛛区分,网站SEO优化利器。
具体可以去官方的说明文档里看:https://docs.bt.cn/purchase-guides/package-service/website-monitoring-report
但是,这个功能应该是宝塔企业版才有的功能,就是说要交钱才能用的,我这里近二十个VPS都是用的免费版本,这怎么回事?
有可能,是我在宝塔的官方下载安装的界面里,复制错了安装命令,直接将企业版安装了上来,这就导致了这个问题。
那么,怎么取消这个模块呢?
systemctl stop site_total & systemctl disable site_totalmv /www/server/panel/vhost/nginx/extension/rplib.cn/site_total.conf /www/server/panel/vhost/nginx/extension/rplib.cn/site_total.conf.bak
再次验证,谷歌还是报403。。。
看来不是这个模块的错,但这个模块功能强大,免费版只用到了其中的一个流量统计,实在是有些大才小用啊。
最终答案
再次让AI跑起来,这次,AI终于找到根本原因并解决了问题。
- Pinghsu 主题的侧边栏调用
getRecentPosts()函数获取最近文章 - 这个函数从数据库中查询最近发布的文章,包括有密码保护的文章
(cid=700) - 当加载有密码的文章时,Typecho 的
Contents.php第 599 行会将$value['hidden']设置为true Archive.php的singleHandle()方法(第 1854 行)检测到$this->hidden == true后,会调用$this->response->setStatus(403)- 即使这只是侧边栏的一个小组件,整个页面的 HTTP 状态码也会被设置为 403
修改了 /www/wwwroot/rplib.cn/usr/themes/pinghsu/functions.php 中的 getRecentPosts() 函数,添加了一个过滤条件,排除有密码保护的文章:
->where('password IS NULL OR password = ?', '') // 排除有密码的文章再次让谷歌验证,这下OK了。
[图片上传中...(24121-btdbv7pj67d)]
本文由 admin 创作,采用 知识共享署名4.0 国际许可协议进行许可。
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。