WordPress本身的并发很低。在一台双核2.5G+,2G内存的Linux机器上。使用Apache的ab命令测试下来。并发在6-10个左右。这样的速度对于做站群的SEO策略来说,就是拿钱开玩笑,一台Server部署个50个WP博客,基本上也算是极限了。一旦Google来,基本上博客就无法访问了,很多情况下会报数据库的连接错误。这对google蜘蛛来说是灾难性的。(网站的访问速度也被参与了网站的排名)。
那么有没有什么办法能提高单台Server上安装的WP博客的数量,还能在Google来的时候,保持良好的访问速度?
本文将探讨如何在一台Server上部署上超过100,甚至超过200个WordPress博客(在Google蜘蛛来或是大访问量的情况下,能正常的打开博客)
需要解决的问题
* 数据库的最大连接数
WP的硬伤就是Mysql。Mysql5.1+后的版本,默认的最大连接数为151,之前的才100。这点并发在有50个博客的服务器上,真的不够用。google蜘蛛以来,基本上就会有个别博客出现数据库无法连接的问题。
我一般会修改 /etc/my.cnf 文件,修改Mysql的最大连接数为1000,其实这个数值太大了也不好,Linux服务器以及Apache在内存的限制下,能打开的有效连接数也不是很大。超过300以上就能危险了。如果真要是到了1000个情况下,我想你SSH也无法登录了。只能听天由命了~~~
OK,修改数据库的最大连接数只是第一步,最简单的一步。其实这个修改不能改变什么,我们只是将Mysql预计会出现的问题先处理掉。下面就是专心优化WP了。
* WP博客文章静态化
通过ab命令,在启用了WP super cache插件的情况下。相同Server的并发在1300+左右。这和并发10来说,简直就是天壤之别啊。
(具体如何安装WP super cache,可参阅其它资料。或者我下次补一篇文章)
我这里要说的是:
安装了WP super cache后,首先需要开启预处理所有的文章页面(建立永不过期的缓存文件)
为每个博客添加一个robots.txt文件,屏蔽对tag/, category/, 2012/等URL的抓取。
为每个博客添加Google Sitemap工具,生成站点地图。
对于新添加的文章而言,缓存系统需要在访问一次后才能生成静态缓存文件。对于做推广来说的博客,通常一个站长手里有数百个博客,发布博客也通常是使用伪原创软件自动发布的。一个博客每天可能会发布几十篇文章,不可能在所有的博客发布文章后,一个一个页面的去点击(让WP缓存静态文件)。所以这里需要一个类似于蜘蛛的程序,在发布文章后,去模拟蜘蛛去采。这样当蜘蛛来采集的时候,WP已经为它准备好了静态页面,瞬间让对WP博客的访问速度提高好几个等级)。但是有些博客的Google来的很快,可能发布了一篇文章后5分钟,蜘蛛就来了。所以最好的策略就是在发布了一篇文章后,程序能访问一次当前发布的文章,这样就算蜘蛛在5分钟内来采,我们的WP也已经缓存好了对应的静态文件。
对于做推广的WP博客,在配置的时候需要注意。
* 为博客添加robots.txt,屏蔽Tag,分类,存档的抓取
user-agent: *
disallow: /wp-
disallow: /feed/
disallow: /comments/feed
disallow: /trackback/
disallow: /sample-page/
disallow: /hello-world/
disallow: /category/
disallow: /tag/
disallow: /2012/
* 禁用博客文章的评论
* 对文章的评论需要登录的用户才可以
* 取消PingBack等
* 取消发布文章Ping文章中的URL(这点很关键,如果你是用WP博客做推广的,那么文章里面难免会出现你需要推广的网站的URl,如果这个选项没用禁用,那么在发布一篇文章后,WP会在Ping文章中出现的URL。如果你服务器上很多的博客在使用程序自动发布文章的话,那么可能对于被推广的服务器来说。在短期内连接数很飙升,严重是会导致被推广的服务器无法访问)