昨天发现某台服务器的负载和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
文章为作者独立观点,不代表DLZ123立场。如有侵权,请联系我们。( 版权为作者所有,如需转载,请联系作者 )

网站运营至今,离不开小伙伴们的支持。 为了给小伙伴们提供一个互相交流的平台和资源的对接,特地开通了独立站交流群。
群里有不少运营大神,不时会分享一些运营技巧,更有一些资源收藏爱好者不时分享一些优质的学习资料。
现在可以扫码进群,备注【加群】。 ( 群完全免费,不广告不卖课!)
发表评论 取消回复