如果你的VPS 负载和CPU达到100%...

本文转载自公众号:老王带你赚美刀,原文:如果你的VPS 负载和CPU达到100%...

昨天发现某台服务器的负载和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降到正常状态。

 

640-139

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

640-138

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

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

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

640-140

文件内容:

640-141

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

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%的解决方案。做自建站的可以收藏下,说不定哪天就能用。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容