WordPress网站加速

    0
    129

    正常情况下对于每分钟几个页面的点击,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-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 显著提高网站吞吐量
    能够正确处理评论提交和其它访客操作
    配置更加复杂

    更多知识,请访问主机91官方博客