解决阿里云虚拟主机带宽占用过高的问题

WordPress

解决阿里云虚拟主机带宽占用过高的问题
最近发现主机的带宽被占用非常多,如果是正常的用户访问行为应该不会带来这么高的负载。只能通过下载日志来进行分析了。
看了一下 Apache 日志,除了正常的访问,绝大多数都是以下几种行为:

POST /wp-cron.php?doing_wp_cron=1493917427.5497610569000244140625
POST /wp-admin/admin-ajax.php HTTP/1.1" 200 146
http://blo.gs/ping.php" "ping.blo.gs/2.0

前两条的访问量大概都在 5,000 条左右,第三条的访问量也有 40 多条,筛选 IP 发现有很大一部分都是国外的主机。
再来看一下主机流量报告:
解决阿里云虚拟主机带宽占用过高的问题
可以看到Unknown robot (identified by 'spider')也爬行了 92.04M 的数据量。
难怪带宽占用一直居高不下。分析出来原因了那么就针对这些问题来解决吧。

禁用 wp-cron

在 function.php 中增加

/* 禁用 wp-cron */
define('DISABLE_WP_CRON', true);

这样就禁用了 wp-cron,但是有一个问题,这样站点的时间计划任务也就没法运行了,比如 wp super cahce 的缓存预加载等功能,这个要考虑好。

admin-ajax.php

之前的时候在 robots.txt 中存有Allow: /wp-admin/admin-ajax.php,将其删除掉即可。

未知 ping

在 function.php 中增加

//彻底关闭 pingback
add_filter('xmlrpc_methods', 'wpjam_xmlrpc_methods');
function wpjam_xmlrpc_methods($methods)
{
    $methods['pingback.ping'] = '__return_false';
    $methods['pingback.extensions.getPingbacks'] = '__return_false';
    return $methods;
}

并且在设置-撰写-更新服务中将所有服务器删除掉。

Unknown robot (identified by ‘spider’)

这个只需要在 robotx.txt 中禁用就可以了,一般正常的蜘蛛是可以屏蔽掉的,如果仍有顽固者,直接禁用 IP。

User-agent:Unknown robot (identified by 'spider')
Disallow: /

经过以上设置后,带宽占用马上下降,网站也可以正常访问了。如果发现 CPU 或者内存也有经常居高不下的情况,很有可能也是存在以上的问题。

© 声明:本站原创文章采用BY-NC-SA创作共用协议,转载时请标明本文地址;非原创(转载)文章版权归原作者所有。

VPS

RECENT POSTS

Stay Hungry. Stay Foolish.

数据库查询次数:11次,页面生成时间:0.031秒。