利用代理使 WordPress 加速
原文出处:WordPress 加速
这个标题可能不是太恰当,事实上本文谈到方法只有很小的一部分与 WordPress 自身有关。
事情的缘起是我用 WordPress 重建了这个 blog,一切看起来都还不错。但美中不足,速度似乎是慢了些。本地访问都需要将近 3 秒的时间才能打开页面,远程访问就更可想而知了,这是我不能忍受的。
首先想到的是为 WordPress 添加 Cache 功能。WordPress 有这样的插件,叫做 wp-cache。但看网上其它用户的评论,似乎效果并不明显,而且增加插件本身就会增加页面显示的开销,更关键的是看到 WordPress 本身是有 Cache 功能的。果真如此的话,那应该是最理想的选择。
在 WordPress 官方搜索一番,果然在这页找到这个隐藏选项:
define('ENABLE_CACHE', true);
默认情况下,该选项并未开启。
把它加进我的 wp-config.php 中,再来看看,似乎是快了些。的确是似乎,因为效果并不明显,本地打开页面仍要超过 2 秒,“快了些”也许只是我的错觉。
那么瓶径在哪里呢?数据库?可能是的。我的数据库并不存储在本机,而是位于局域网上另外一台配置较好的主机上。一定是读取数据的延时!但这种想法值得商榷,正式的应用中,我想很少会有 Web 服务和数据库服务同时存在于同一台服务器上的案例。但也许是我局域网的速度有限,也许是我用机子配置太差……?总之,我还是来换一种方案试一下吧。
首先,在我的数据库主机(它同时也为局域网提供 Web 服务)上,新增一个虚拟主机配置:
ServerName www.moyuer.cn ServerAdmin yuanshoujing@gmail.com DocumentRoot /path/to/htdocs/
我这里用了非标准的 8080 端口,要使它生效,还需要把它加进 Apache 的监听端口列表中:
Listen 80 Listen 8080
为了保证其它虚拟主机不监听 8080 端口,把它们修改成如下:
ServerName www.example.com DocumentRoot /path/to/htdocs/
重启 Apache,没有报错的话,配置告一段落了。
但这台主机本身并不能被互联网访问到,接下来要做的就是把它发布出去。在网关主机(也就是本博客原本运行的主机)上,我使用的是 Lighttpd(我喜欢它的程度要超过 Apache),为它启用 mod_proxy,然后增加虚拟主机配置如下:
$HTTP["host"] =~ “(www.)?moyuer.cn” { proxy.server = ( “” => (( “host” => “ip.to.real.server”, “port” => 8080 )) ) }
重启 Lighttpd 使它生效。
再来访问一下,果然快了很多!本地访问,平均速度不超过一秒,似乎是可以接受了。:-)