昨天发现某台服务器的负载和CPU一直100%,服务器配置是4核16G ,装了二十个站,访问量都不大,按理说不应该把资源跑满。

直接进入日志目录(/www/wwwlogs/)看服务器最新的访问情况。

发现很多IP POST Xmlrpc.php ,这种大概率是一些漏洞扫描器在工作。

为什么 xmlrpc.php 文件会被扫描,首先要明白什么是 XML-RPC,它的全称是 XML Remote Procedure Call,即 XML 远程过程调用,它是一套允许运行在不同操作系统、不同环境的程序实现基于网络过程调用的规范和一系列的实现。

关于xmlrpc.php的隐患网上很多,大家可以百度或者谷歌。

ok,既然找到原因,立马在Nginx的配置文件里加上下面这段代码。

    location ~* /xmlrpc.php {

     deny all;

    }

果然,负载和CPU降到正常状态。


继续看了下日志,发现还有一些罪魁祸首。

现在网络上的爬虫非常多,有对网站收录有益的,比如谷歌机器人(GoogleBot),也有不遵守robots规则,对服务器造成压力,还不能为网站带来流量的无用爬虫。

因为我做的SEO站群,所以除了Google爬虫,Bing爬虫,其他的我基本上都做无用处理。常见的采集数据的机器人关键词加入 UA 黑名单,如 MJ12bot、AhrefsBot、serpstatbot、DataForSeoBot、SNAPSHOTGPTBot、Go-http-client、python-requests .....真的太多太多了。这些机器人只会把服务器的资源耗尽。

直接在Nginx的配置目录里写一个配置文件。

文件内容:

最后再站点配置里调用这个文件。

    include /usr/local/nginx/conf/agent_deny.conf; 

公众号里不太好放代码,如果有需要,联系我发你。

最后再说一点,如果服务器配置低于4核8G ,排除恶意扫描和爬虫、代码逻辑等原因,依然负载和CPU很高,还可以试试针对PHP的FPM配置文件进行优化。

FPM配置,主要是4个参数。
pm.max_children 
pm.start_servers  
pm.min_spare_servers 
pm.max_spare_servers 

根据硬件配置,具体设置的数据也不同,详情大家百度和google搜索。

以上就是VPS满负载,CPU100%的解决方案。做自建站的可以收藏下,说不定哪天就能用。
我是做跨境的老王,欢迎找我聊天。vx:6860145


点赞(4) 打赏

评论列表 共有 0 条评论

暂无评论

服务号

订阅号

备注【拉群】

商务洽谈

微信联系站长

发表
评论
立即
投稿
返回
顶部