WordPress网站加速

0
4969

正常情况下对于每分钟几个页面的点击,WordPress的性能满足是毫无问题的。但是假如某一天,你的博客文章被某知名网站转载或者被某人气王所分享,或者是出现在了某些社交论坛。这将会给你的博客带来巨大的流量,这种情况下对于服务器处理的处理能力就是一大考验。下面必盛互联就介绍几种为你的WordPress服务器缓解压力的方法。

  • IIS Output Caching
  • WP Cache插件
  • WP Super Cache 插件

接下来,必盛互联就为你一一讲述三种方法的优缺点以及如何配置IIS、如何在WordPress中使用这些选项等。

基本配置

在进行配置之前,首先要满足以下的先决条件。
 

1.安装WordPress。如何安装这里必盛互联就不再赘述了,必盛互联的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-contentplugins”这里就会生成一个“wp-contentpluginswp-super-cache”文件夹。
 

第三步:复制文件“wp-contentpluginswp-super-cachewp-cache-config-sample.php” 到“wp-contentwp-cache-config.php” ,确保 WPCACHEHOME 指向正确的位置。
 

第四步:复制文件“wp-contentpluginswp-super-cachewp-cache-phase1.php”文件到“wp-contentadvanced-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-contentcachesupercache{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-contentcache”文件,该文件在插件激活的时候会自动创建。在这里建立一个新的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 显著提高网站吞吐量
能够正确处理评论提交和其它访客操作
配置更加复杂

更多知识,请访问必盛互联官方博客