WordPress网站加速 2013年03月20日

WordPress网站加速

正常情况下对于每分钟几个页面的点击,WordPress的性能满足是毫无问题的。但是假如某一天,你的博客文章被某知名网站转载或者被某人气王所分享,或者是出现在了某些社交论坛。这将会给你的博客带来巨大的流量,这种情况下对于服务器处理的处理能力就是一大考验。下面主机91就介绍几种为你的WordPress服务器缓解压力的方法。
  • IIS Output Caching
  • WP Cache插件
  • WP Super Cache 插件
接下来,主机91就为你一一讲述三种方法的优缺点以及如何配置IIS、如何在WordPress中使用这些选项等。

基本配置

在进行配置之前,首先要满足以下的先决条件。
 
1.安装WordPress。如何安装这里主机91就不再赘述了,主机91的WordPress主机提供了对于WordPress的一键安装,方便快捷。
 
2.安装微软URL Rewrite2。启动IIS中的URL Rewrite。这一步非常重要,因为wordpress中的Permalink功能主要用到URL Rewrite。
 
3.启用“Pretty Permalinks”

IIS Output Caching

IIS7.0具有非常强大的IIS Output Caching框架,可以在内核模式(http.sys)和用户模式内存区域(IIS工作进程)缓存响应信息。IIS Output Caching可以用于静态Web资源和半动态web应用程序。内容自动生成,而不是随着请求而改变。博客引擎就是一个半自动web应用的例子。
 
使用IIS Manager UI启用IIS Output Caching
wordpress加速
或者添加以下的配置文件到web.config文件里。
 
<caching>
  <profiles>
    <add extension="*" policy="CacheForTimePeriod"
             kernelCachePolicy="CacheForTimePeriod"
             duration="00:00:30" />
  </profiles>
</caching>
 
配置好之后,IIS将会在30秒内,缓存这些生成在内存中的响应。从而避免繁重的脚本处理和数据库I/O的所有后续请求。这将显著增加wp的吞吐量。例如,在我的虚拟机上启用IIS Output Caching之后WP的吞吐量由每秒10个请求增长到了每秒2500个请求。
 
当然使用IIS Output Caching也存在一定的缺陷。使用缓存页面代替WP自定生成页面时,会导致某些动态博客功能丢失。例如,当访问者提交博客评论时不会有任何确认信息提示评论提交成功。这就是因为用户提交评论后显示的页面时从缓存中来的。可能就会导致读者反复的提交评论。这个问题可以通过减少缓存的timeout时间,在一定程度来缓解。
 
另一种防止此类情况发生的解决方案就是使用WP Super Cache 插件。

WP Cache和WP Super Cache 

WP Super Cache插件是一款非常流行的插件,从动态的WordPress博客生成一个临时静态的HTML页面,生成HTML文件后,服务器将直接处理文件而不是相对花费代价更高的WordPress脚本。由于WP Super Cache属于WordPress定制的解决方案,因此它可以灵活的处理各种情况如:提交评论或者是为用户提供网页登陆。特别的,该插件对于以下用户提供静态HTML页面:
 
没有登陆的用户
 
没有留言的用户
 
90%的用户一般都不会做任何的动作,为他们提供静态的HTML页面可以显著的提高服务器的吞吐量。
 
WP Super Cache插件有两种操作模式:WP-Cache和WP-SuperCache。使用WP-Cache,静态文件仍然需要生成,但是每一个请求都需要登录PHP engine。WP-SuperCache则是依靠URL Rewrite来完全绕开PHP。

IIS7.0中配置WP-Super Cache的步骤

第一步:确认WP-content文件夹可写。
 
第二步:下载WP-Super Cache插件,解压到WordPress Plugins 文件夹“wp-content\plugins”这里就会生成一个“wp-content\plugins\wp-super-cache”文件夹。
 
第三步:复制文件“wp-content\plugins\wp-super-cache\wp-cache-config-sample.php” 到“wp-content\wp-cache-config.php” ,确保 WPCACHEHOME 指向正确的位置。
 
第四步:复制文件“wp-content\plugins\wp-super-cache\wp-cache-phase1.php”文件到“wp-content\advanced-cache.php”
 
第五步:添加下列Rewrite 规则到web.config。确保“WP Super Cache” 规则在pretty permalinks规则之前。
 
<rewrite>
 <rules>
  <rule name="WP Super Cache" stopProcessing="true">
    <match url="^(\d{4})/(\d{2})/(.+?)/?$" ignoreCase="false" />
    <conditions>
      <add input="{REQUEST_METHOD}" negate="true" pattern="POST" ignoreCase="false" />
      <add input="{QUERY_STRING}" negate="true" pattern=".*=.*" ignoreCase="false" />
      <add input="{QUERY_STRING}" negate="true"
                pattern=".*attachment_id=.*" ignoreCase="false" />
      <add input="{HTTP_COOKIE}" negate="true"
               pattern="^.*(comment_author_|wordpress|wp-postpass_).*$" ignoreCase="false" />
      <add
        input="{DOCUMENT_ROOT}\wp-content\cache\supercache\{HTTP_HOST}\{R:1}\{R:2}\{R:3}\index.html"
        matchType="IsFile" />
    </conditions>
    <action type="Rewrite"
         url="wp-content/cache/supercache/{HTTP_HOST}/{R:1}/{R:2}/{R:3}/index.html" />
  </rule>
 
  <rule name="Wordpress Pretty Permalinks" patternSyntax="Wildcard">
    <match url="*" />
    <conditions>
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="index.php" />
  </rule>
 </rules>
</rewrite>
 
第六步:添加下列代码到wp-config.php文件,添加到:“require_once(ABSPATH.’wp-settings.php’);”  之上
 
define( 'WP_CACHE', true );
 
第七步:登录WordPress网站后台,激活插件。点击“WP Super Cache”。如果配置正确的话,你将看到如下的插件配置页面。
wordpress加速
第八步:找到“wp-content\cache”文件,该文件在插件激活的时候会自动创建。在这里建立一个新的web.config文件,将下列的内容复制进文件中。
 
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Cache-Control" value="max-age=300, must-revalidate" />
    </customHeaders>
  </httpProtocol>
</system.webServer>
</configuration>
 
上面的IIS配置将会发送Cache-Control response header到每一个缓存HTML页面。这些Header将会强制浏览器在5s后终止本地Cache响应。你可以通过将WP Super Cache插件的状态设置为“ON”来检查其运行情况。
总结:
  优点 缺点
IIS Output Caching 容易配置
显著提高网站吞吐量
可能会阻止提交评论的确认信息
WP-Cache 不使用URL rewrite
能够正确处理评论提交和其它访客操作
和另外两种方式相比性能提升不显著
WP-Super Cache 显著提高网站吞吐量
能够正确处理评论提交和其它访客操作
配置更加复杂
更多知识,请访问主机91官方博客
分享到:
WangZhanAnQuanXingYouHua
推荐阅读