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

文章分享 管理员 1年前 (2025-02-09) 61次浏览 0个评论

本文转载自公众号:老王带你赚美刀,原文:如果你的 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 降到正常状态。

 

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

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

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

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

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

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

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

文件内容:

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

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

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

喜欢 (0)

您必须 登录 才能发表评论!