随着 WordPress 的流行,越来越多站长喜欢选择傻瓜式的 WordPress 作为网站的程序选择,但是,很多站长都是没有实战经验的,基本都是道途听说,认为 WordPress 怎么怎么好,又方便又简单,装个主题装个插件还不是顺手点一下鼠标的事情。
WordPress 的好处很多,我也无法一一举例说明其优越性,但是,在这里我必须劝告所有即将做网站的站长同行们,如果你想拥有一个大流量的网站,切忌使用 WordPress 作为你的程序选择。
WordPress 作为一个博客程序,开始设计的理念就是为写博客的人群准备的,而网站不同,网站是为了更高的点击率,更多的文章是很有必要的。试想,你见过谁写博客写过一万十万甚至百万级别的文章?除非这人脑有问题吧。。。大多数能达到以万来计数的文章篇数级别的 WordPress ,不是大型的多人博客,就是采集来的垃圾站。
作为一名过来人,也许你没经历过我的苦恼,也许你认为我在哗众取宠,但是这个可是事实,我的网站萝卜网,以及小 X 的网站异次元系列 (异次元+iPC.me),都是用独立服务器托管的,每天 PV 大概在 20 万上下,这几天和小 X 交流,发现他也遇到了我的问题,那就是 WordPress 一旦达到这个访问量,文章数目又多的情况下,已经很难用一台服务器支撑了。
经过我御用技术员 WooDragon 的几天研究,瓶颈出在 MySQL 上,大量的查询,大量的数据库频繁写入写出,导致了大量的硬盘写入写出,直接的结果,就是导致内存爆满,CPU 狂飙,服务器负载高得不能再高,然后,访问前台后台都奇慢无比,每天都像大姨妈似的就在某些访问人数多的时候出现这种情况。
在官方的 WordPress 优化建议页面 (Link #1 #2) 上,官方也有这么一条:
In high-traffic situations, many simultaneous connections to the database can cause excessive load on the server. In this case, connections to the server may not complete, causing the typical “Connection timed out” response in the visitor‘s browser.
连官方都承认高访问情况下,MySQL 的并发是不能避免的,那么又有什么好的解决方法呢?
我发现国外用 WordPress 做得很大的网站比比皆是,经过几天的研究,我发现几乎他们都是用了多台服务器做负载均衡 (Load Balanced Servers),那可是活生生的美元呀,这对于国内的中小网站来说,确实是一笔很大很大的成本。
同样的访问量,就拿萝卜网来说,每天 20 万的 PV,如果是英文站,我可以很悠闲自得的购买 Load Balanced Servers ,然后花钱雇佣服务器管理员来解决这些问题。但是在国内,国内的 IDC 中,本身懂 Linux 服务器的就很少 (好的都去大网站大公司了),懂 Load Balanced Servers 的更少,除非每天的流量实在太大,大到你认为在国内购买 Load Balanced Servers 都绰绰有余的地步。
杯具,纯粹的杯具,所以我的观点是:
1 、 WordPress 只是一个博客程序,而不是内容管理程序 (CMS),当初设计的时候就是为博客而设计,而不是为大流量网站而设计的。
2 、 WordPress 每更新一个版本,就显得越来越臃肿,不禁让我想到了那只肥肥的国内企鹅。
3 、 WordPress 再怎么优化,再怎么二次开发,还是承受不了 MySQL 这个最关键的瓶颈。
4 、 如果你是做中文站的,尽快摆脱 WordPress 吧,想想用国内的服务器自动更新 WordPress 最新版本时候的龟速;想想你用一年的广告费还不如同样流量的英文站三个月广告费的时候;想想同样的成本,你能在国内买到服务器的质量和在国外买到的服务器的质量,想想哪天访问量突增而服务器挂掉你束手无策的时候吧。
5 、 如果你计划做一个大流量的网站,还是避免用 WordPress ,推荐用国内的成熟的能生成 HTML 的 CMS,比如 dedecms 、帝国 CMS 、 phpcms 、 php168 等等。