如果 wordpress 没经过优化,当产生 dig 效应时,一般服务器都会承受不了而崩溃,以下有几个方法对 wordpress 进行优化,防止这种情况发生你的 blog 上:
修改 MySql 数据库
大多数 blog 出现上述情况都是因为 MySql 数据库出错,你 blog 里所有内容的存储、管理和输出都是通过 MySQL 数据库进行运作的,在一个特定的时间里 MySQL 默认不允许超过 100 个连接,所以当你的访问量超过了这个限制后,来访者只能看到一个 “错误” 页面。
幸亏有一个简便的办法来解决这个问题(如果你能管理你 blog 的服务器):只增加 MySQL 默认支持连接。打开你的 MySQL 配置文件my.ini,找到 “max_connections”,改变它的数值为你想要的,我把它设置成 200 ,修改后再重新启动 MySQL 数据库,这样就好了。
使用 WP-Cache
MySQL 出错只是问题的一个组成部分,如果你不想虐待你的数据库服务器,你可以选择使用 WP-Cache ,它是一个 wordpress 插件,可以生成静态 HTML 文件,由此达到减少数据库运作次数的目的。
这个插件可以保证 MySQL 服务器的连接数目减少到最少的程度。而且,wordpress 是用 PHP 来编写的,在每个页面被打开时,都需要进行解析,在使用 WP-Cache 生成静态 HTML 文件后,还会加快来访者的网页装载速度。
WP-Cache 默认的缓存时间是一个小时,因为我想要更快的看最新评论,所以我把这个时间改成了 30 分钟( 180 秒),你也可以在 Options > WP-Cache 里做出你想要的修改。
镜像
以上的两个方法都是很好用的,但如果你的服务器没有足够大的带宽,或者你没有你足够高的权限来进行上述优化,你就得对你的 blog 的内容作个镜像了 。
使用 Coral Content Distribution Network 可以很轻松的对你 blog 进行镜像。Coral 的工作模式类似于 P2P ,当将你的链接提交到它的网站上后,它会在全世界超过 260 个服务器上生成你的链接镜像。要提交你的链接,你只需要在它的页面上输入你的 URL (在 Using Coral 那段下面),然后点击 “Go”,它会在一个新窗口里显示你的镜像页面(这可能要花一分钟或更长的时间)。
值得注意的是 Coral 对于每个 URL 镜像都有带宽限制。所以比较好的做法是通过 Coral 多做几组镜像,我是这么做的:
1 . http://zsk.akaka.com.cn.nyud.net:8080/2007/06/31-free-tests-online/
2 . http://zsk.akaka.com.cn.nyud.net:8080/2007/06/31-free-tests-online/?mirror2
3 . http://zsk.akaka.com.cn.nyud.net:8080/2007/06/31-free-tests-online/?mirror3
我建议在你将你的文章提交到 dig 之类的网站上后,可以将这些镜像放在第一个评论,注明是镜像。
Apache
如果你通过 Apache 来运行你的网站,我所知道的唯一可以做的就是设置 maxclients 为最大( 256 ),更多关于如何优化 Apache 的文章可以看 Apache Performance Notes
更高级的优化
如果你想知道其它更先进的 wordpress 优化方法,你可以看 High Performance WordPress ,这篇文章非常详细地介绍了 WordPress 是如何工作的,还有很多你可以对它做出更进一步优化的方法。
对与这个问题我不是一个专家,如果你有更多的见解或建议,请在留言里告诉我。
收藏和分享: