高负载问题

打开宝塔后台每次服务器负载头接近100%,查看服务器日志,发现了有一些奇怪的请求在疯狂刷Request.

因为这些请求直接进入到php-fpm,直接执行了正常的网站逻辑,包括php解析,mysql查询等。导致了资源大量的占用。

解决方案

因为资源占用主要是由PHP的逻辑产生的,我们可以在apache 或者 nginx层把请求过滤掉。下面apache为例,把特定的请求头定位到403界面,不进入PHP的处理。

<Location />
    SetEnvIfNoCase User-Agent ".*(Ubuntu|Googlebot).*" BADBOT
    Order allow,deny
    Allow from all
    deny from env=BADBOT
</Location>

这样,把我们认为有问题的User-Agent在web服务器层拦截。

看看最终完美的效果

打赏
宝塔屏蔽爬虫降低服务器负载

发表评论