WordPress 网站加速方法之Cachify插件开启Memcached对象加速

目前,我们WordPress网站加速的时候较多通过硬件服务器的配置升级带宽升级,以及用一个 WordPress缓存插件,但是做这些往往是不够的。这里,我们还需要通过服务器性能的优化配合WordPress才可以最大化的优化网站的速度。这里,我们可以配合WordPress缓存插件的同时用到 Memcached 对象加速。

比如缓存插件我们可以用到当前主流的 WP Rocket。同时,我们可以利用 Cachify 插件开启 Memcached加速。

第一、检查服务器配置Memcached

既然我们需要用到 Memcached 缓存,那服务器需要配置 Memcached 组件。我们检查当前服务器的WEB环境,你是用宝塔面板的,还是LNMP一键包的,都根据设置要求部署 Memcached。

图片[1]-WordPress 网站加速方法之Cachify插件开启Memcached对象加速-WordPress建站笔记

安装完毕后,我们可以检查看看当前的Memcached是否安装。

    service memcached status

插件地址:https://wordpress.org/plugins/cachify/

图片[2]-WordPress 网站加速方法之Cachify插件开启Memcached对象加速-WordPress建站笔记

我们也可以直接在WordPress后台激活安装。

图片[3]-WordPress 网站加速方法之Cachify插件开启Memcached对象加速-WordPress建站笔记

可以看到 Cachify 缓存防止有支持 数据库、硬盘、Memcached。对于这款插件设置还是很简单的,比如可以设置过期时间、缓存生成可排除登录用户。以及缓存限制页面和浏览器排除。如果要在源代码中显示 Cachify 信息,那就勾选 缓存签名,我们测试的时候可以开启。

最为主要的还是缓存方式,我们具体分析。

1、数据库缓存方式

这个方式很就简单,直接选择激活保存即可,无需其他设置。

缓存的标记直接存储在WordPress数据库中。这仍然加快了页面加载时间,因为不需要动态生成内容,而是直接加载先前生成的HTML标记。

2、硬盘缓存方式

如果选择硬盘作为缓存位置,cachefy将请求的博客页面生成的HTML代码存储在web服务器的硬盘上,每个网页一个HTML文件。服务器将重定向到适当的缓存文件。PHP解释器的启动被完全消除,这提供了额外的性能提升。

在Cachify设置中选择该选项之前,应该在WordPress目录wp-content中创建一个名为cache的新文件夹,权限为777。如果该路径已经存在,则只检查权限。插件将尝试自己创建文件夹,但如果发生错误,脚本将以提示结束。

Apache或Nginx web服务器控制浏览器的页面调用和现有缓存文件。这可以通过扩展Apache文件.htaccess或Nginx配置文件来实现。除了HTML版本的网页,Cachify还创建了一个GZIP压缩版本。服务器访问压缩文件,不会自己对内容进行耗时的压缩。这样可以节省CPU负载,因为文件已经压缩过了。

这里硬盘缓存方式还是有区别不同的WEB引擎的,如果我们用Apache引擎的话,还需要单独的配置.htaccess文件。

HTTP非加密方式:

    # BEGINN CACHIFY
    <IfModule mod_rewrite.c>
        # ENGINE ON
        RewriteEngine On
     
        # GZIP FILE
        <IfModule mod_mime.c>
            RewriteCond %{REQUEST_URI} /$
            RewriteCond %{REQUEST_URI} !^/(wp-admin|wp-content/cache)/.*
            RewriteCond %{REQUEST_METHOD} !=POST
            RewriteCond %{QUERY_STRING} =""
            RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
            RewriteCond %{HTTP:Accept-Encoding} gzip
            RewriteCond %{DOCUMENT_ROOT}/path to/wp-content/cache/cachify/%{HTTP_HOST}%{REQUEST_URI}index.html.gz -f
            RewriteRule ^(.*) /path to/wp-content/cache/cachify/%{HTTP_HOST}%{REQUEST_URI}index.html.gz [L]
     
            AddType text/html .gz
            AddEncoding gzip .gz
        </IfModule>
     
        # HTML FILE
        RewriteCond %{REQUEST_URI} /$
        RewriteCond %{REQUEST_URI} !^/(wp-admin|wp-content/cache)/.*
        RewriteCond %{REQUEST_METHOD} !=POST
        RewriteCond %{QUERY_STRING} =""
        RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
        RewriteCond %{DOCUMENT_ROOT}/path to/wp-content/cache/cachify/%{HTTP_HOST}%{REQUEST_URI}index.html -f
        RewriteRule ^(.*) /path to/wp-content/cache/cachify/%{HTTP_HOST}%{REQUEST_URI}index.html [L]
    </IfModule>
    # END CACHIFY

HTTPS加密方式:

    # BEGIN CACHIFY
    <IfModule mod_rewrite.c>
    	# ENGINE ON
    	RewriteEngine on
    	RewriteBase /
    	
    	# set hostname directory
    	RewriteCond %{HTTPS} on
    	RewriteRule .* - [E=CACHIFY_HOST:https-%{HTTP_HOST}]
    	RewriteCond %{HTTPS} off
    	RewriteRule .* - [E=CACHIFY_HOST:%{HTTP_HOST}]
     
    	# set subdirectory 
    	# sometimes %{REQUEST_URI} might be an empty string, so /$ won't match
    	RewriteCond %{REQUEST_URI} /$
    	RewriteRule .* - [E=CACHIFY_DIR:%{REQUEST_URI}]
    	RewriteCond %{REQUEST_URI} ^$
    	RewriteRule .* - [E=CACHIFY_DIR:/]
     
    	# gzip
    	RewriteRule .* - [E=CACHIFY_SUFFIX:]
    	<IfModule mod_mime.c>
    		RewriteCond %{HTTP:Accept-Encoding} gzip
    		RewriteRule .* - [E=CACHIFY_SUFFIX:.gz]
    		AddType text/html .gz
    		AddEncoding gzip .gz
    	</IfModule>
     
    	# Main Rules
    	RewriteCond %{REQUEST_METHOD} !=POST
    	RewriteCond %{QUERY_STRING} ^$
    	RewriteCond %{REQUEST_URI} !^/(wp-admin|wp-content/cache)/.*
    	RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
    	RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/cachify/%{ENV:CACHIFY_HOST}%{ENV:CACHIFY_DIR}index.html -f
    	RewriteRule ^(.*) /wp-content/cache/cachify/%{ENV:CACHIFY_HOST}%{ENV:CACHIFY_DIR}index.html%{ENV:CACHIFY_SUFFIX} [L]
    </IfModule>
    # END CACHIFY

如果是Nginx引擎的话,需要修改站点的Nginx配置。

    ## GZIP
    gzip_static on;
     
    ## CHARSET
    charset utf-8;
     
    ## INDEX LOCATION
    location / {
        if ( $query_string ) {
            return 405;
        }
        if ( $request_method = POST ) {
            return 405;
        }
        if ( $request_uri ~ /wp-admin/ ) {
            return 405;
        }
        if ( $http_cookie ~ (wp-postpass|wordpress_logged_in|comment_author)_ ) {
            return 405;
        }
     
        error_page 405 = @nocache;
     
        try_files /wp-content/cache/cachify/https-${host}${uri}index.html /wp-content/cache/cachify/${host}${uri}index.html @nocache;
    }
     
    ## NOCACHE LOCATION
    location @nocache {
        try_files $uri $uri/ /index.php?$args;
    }
     
    ## PROTECT CACHE
    location ~ /wp-content/cache {
        internal;
    }

3、Memcached缓存方式

这里,我们还是建议用 Memcached缓存方式,这种只支持Nginx引擎,所以我们需要确定当前服务器用的是 Nginx引擎,虚拟主机一般是不支持的。

    ## GZIP
    gzip_static on;
     
    ## CHARSET
    charset utf-8;
     
    ## INDEX LOCATION
    location / {
    	error_page 404 405 = @nocache;
     
    	if ( $query_string ) {
    		return 405;
    	}
    	if ( $request_method = POST ) {
    		return 405;
    	}
    	if ( $request_uri ~ "/wp-" ) {
    		return 405;
    	}
    	if ( $http_cookie ~ (wp-postpass|wordpress_logged_in|comment_author)_ ) {
    		return 405;
    	}
     
    	default_type text/html;
    	add_header X-Powered-By Cachify;
    	set $memcached_key $host$uri;
    	memcached_pass localhost:11211;
    }
     
    ## NOCACHE LOCATION
    location @nocache {
    	try_files $uri $uri/ /index.php?$args;
    }

同样的,需要配置Nginx站点的Nginx配置。

    charset utf-8;
    location / {
      error_page 404 405 = @nocache; 
      if ( $query_string ) {
        return 405;  }
      if ( $request_method = POST ) {
        return 405;
      }
      if ( $request_uri ~ "/wp-" ) {
        return 405;
      }
     
      if ( $http_cookie ~ (wp-postpass|wordpress_logged_in|comment_author)_ ) {
        return 405;
      }
     
      default_type text/html;
      add_header X-Powered-By Cachify;
      set $memcached_key $host$uri;
      memcached_pass 127.0.0.1:11211;
    }
    location @nocache {
      try_files $uri $uri/ /index.php?$args;
    }

这里,我们直接替换 WordPress.conf 文件。如果是我们当前服务器有其他要引用wordpress.conf,那就需要重新复制一份换个名字,然后引用,当然需要在 对应站点的.conf文件中修改引用wordpress.conf的名字。

设置完毕之后,我们需要 nginx -t 检查是否正常,然后重启 Nginx 生效。

图片[4]-WordPress 网站加速方法之Cachify插件开启Memcached对象加速-WordPress建站笔记

查看源代码,我们可以看到上图的 Cachify 标识说明已经成功安装。然后我们可以在插件中设置取消缓存签名。

这样,我们又一个方法实现Memcached加速缓存,可以配合我们前面提到的”WordPress访问速度慢怎么办?使用WP Super Cache+Memcached加速方法“选择使用。

参考文章利用Cachify缓存插件实现WordPress网站Memcached对象缓存

投票 post
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享