WordPress 静态缓存插件有很多,比如: WP Super Cache 、 Hyper Cache 、 W3 Total Cache 、当然还有今天要介绍的 WP Rocket 插件。它们都各有各的特点,感兴趣的朋友可以百度一下,今天主要讲一讲 WP Rocket 的使用介绍。
WP Rocket
产品描述
WP Rocket 自称是当前最高效也是最灵活的 WordPress 静态缓存插件。可以优化你的 JS CSS 文件结构减少多次请求达到优化速度的目的,还集成了图片延迟加载对最求极致加速的用户不错的选择,通过使用这个插件,能使得你的 WordPress 博客将显著的提速。
WordPress 缓存插件 WP Rocket v2.9.8.1 汉化版
更新日志
2.9.9 (2017年3月22日更新)
- Enhancement: Compatibility with GoDaddy Managed Hosting
- Enhancement: Update Mobile_Detect class to recent version
- Enhancement: Allow caching when the ao_noptimize query string is set
- Fix: LazyLoad Iframes & Videos no longer crashes Android Facebook browser
- Fix: CDN URL no longer applied on SVG URL by reference
- Fix: Remove query string is now correctly applied when minification disabled on a single post
- Fix: Imagify install button works again
2.9.8.1 (2017年3月2日更新)
- Regression Fix: PHP Fatal error: Can’t use function return value in write context in ../inc/front/cdn.php on line 138
WP Rocket v2.9.2(2017年1月11日)
- Enhancement: Apply CDN URL to images displayed with wp_get_attachment_image_src()
- Enhancement: Preserve Yandex comments during HTML minification
- Enhancement: save CloudFlare IPs in a transient to prevent calls to the CloudFlare API
- Fix: Replace spaces in cache busting path to prevent loading issue with the cache busting files
- Fix: Do not minify if request is a POST method to prevent JS files to be added in the footer of a not cached page
- Fix: Check if post type is an object before purge to prevent a PHP warning
- Fix: Correctly remove the cache busting folder when uninstalling WP Rocket
- Fix: Force int type for CloudFlare browser cache TTL value
关于 WP Rocket 配置
我这里主要讲 web 服务器是 Nginx 的使用方法。
1、下载安装 WP Rocket (下载地址往下看),39 刀正版支持,诸位老板少抽几包烟,尽量支持官方。
2、添加rewite规则到vhost配置文件中。目的就是让web服务器节省在请求动态文件,直接读取生成的静态文件。
- ###################################################################################################
- # Rocket-Nginx
- #
- # Rocket-Nginx is a NGINX configuration to speedup your WordPress
- # website with the cache plugin WP-Rocket (http://wp-rocket.me)
- #
- # Author: Maxime Jobin
- # URL: https://github.com/maximejobin/rocket-nginx
- #
- # Tested with WP-Rocket version: 2.8.11
- # Tested with NGINX: 1.11.3 (mainline)
- #
- # Version 1.2
- #
- ###################################################################################################
- # Add debug information into header
- set $rocket_debug 0;
- # HTTP Strict Transport Security (to overwrite default)
- set $rocket_hsts_value “”;
- # WP-Content directory (leave as is if you did not alter WordPress’ default value)
- set $rocket_wpcontent_directory “$document_root/wp-content”;
- # WP-Content URL (leave as is if you did not alter WordPress’ default value)
- set $rocket_wpcontent_url “/wp-content”;
- ###################################################################################################
- # Do not alter theses values
- #
- set $rocket_bypass 1; # Should NGINX bypass WordPress and call cache file directly ?
- set $rocket_encryption “”; # Is GZIP accepted by client ?
- set $rocket_file “”; # Filename to use
- set $rocket_is_bypassed “No”; # Header text added to check if the bypass worked or not. Header: X-Rocket-Nginx-Bypass
- set $rocket_reason “”; # Reason why cache file was not used. If cache file is used, what file was used
- set $rocket_https_prefix “”; # HTTPS prefix to use when cached files are using HTTPS
- set $rocket_hsts 0; # Is HSTS is off (0) by default. Will be turned on (1) if request is HTTPS
- # HSTS Default value : 1 year, include subdomains.
- set $rocket_hsts_value_default “max-age=31536000; includeSubDomains”;
- ###################################################################################################
- # PAGE CACHE
- #
- # Is GZIP accepted by client ?
- if ($http_accept_encoding ~ gzip) {
- set $rocket_encryption “_gzip”;
- }
- # Is SSL request ?
- if ($https = “on”) {
- set $rocket_https_prefix “-https”;
- set $rocket_hsts 1;
- }
- # If HSTS value is not set, use default value
- if ($rocket_hsts_value = “”) {
- set $rocket_hsts_value “$rocket_hsts_value_default”;
- }
- # If HSTS is disabled, unset HSTS set for Rocket-Nginx configuration
- if ($rocket_hsts = “0”) {
- set $rocket_hsts_value “”;
- }
- # File/URL to return IF we must bypass WordPress
- # index-mobile.html
- # index-mobile-https.html
- set $rocket_end “/cache/wp-rocket/$http_host/$request_uri/index$rocket_https_prefix.html$rocket_encryption”;
- set $rocket_url “$rocket_wpcontent_url$rocket_end”;
- set $rocket_file “$rocket_wpcontent_directory$rocket_end”;
- set $rocket_mobile_detection “$rocket_wpcontent_directory/cache/wp-rocket/$http_host/$request_uri/.mobile-active”;
- # Do not bypass if it’s a POST request
- if ($request_method = POST) {
- set $rocket_bypass 0;
- set $rocket_reason “POST request”;
- }
- # Do not bypass if arguments are found (e.g. ?page=2)
- if ($is_args) {
- set $rocket_bypass 0;
- set $rocket_reason “Arguments found”;
- }
- # Do not bypass if the site is in maintenance mode
- if (-f “$document_root/.maintenance”) {
- set $rocket_bypass 0;
- set $rocket_reason “Maintenance mode”;
- }
- # Do not bypass if one of those cookie if found
- # wordpress_logged_in_[hash] : When a user is logged in, this cookie is created (we’d rather let WP-Rocket handle that)
- # wp-postpass_[hash] : When a protected post requires a password, this cookie is created.
- if ($http_cookie ~* “(wordpress_logged_in_|wp\-postpass_|woocommerce_items_in_cart|woocommerce_cart_hash|wptouch_switch_toogle|comment_author_|comment_author_email_)”) {
- set $rocket_bypass 0;
- set $rocket_reason “Cookie”;
- }
- if (-f “$rocket_mobile_detection”) {
- set $rocket_bypass 0;
- set $rocket_reason “Specific mobile cache activated”;
- }
- # Do not bypass if the cached file does not exist
- if (!-f “$rocket_file”) {
- set $rocket_bypass 0;
- set $rocket_reason “File not cached”;
- }
- # If the bypass token is still on, let’s bypass WordPress with the cached URL
- if ($rocket_bypass = 1) {
- set $rocket_is_bypassed “Yes”;
- set $rocket_reason “$rocket_url”;
- }
- # Clear variables if debug is not needed
- if ($rocket_debug = 0) {
- set $rocket_reason “”;
- set $rocket_file “”;
- }
- # If the bypass token is still on, rewrite according to the file linked to the request
- if ($rocket_bypass = 1) {
- rewrite .* “$rocket_url” last;
- }
- # Add header to HTML cached files
- location ~ /wp-content/cache/wp–rocket/.*html$ {
- add_header Vary “Accept-Encoding, Cookie”;
- add_header X–Rocket–Nginx–Bypass $rocket_is_bypassed;
- add_header X–Rocket–Nginx–Reason $rocket_reason;
- add_header X–Rocket–Nginx–File $rocket_file;
- add_header Strict–Transport–Security “$rocket_hsts_value”;
- expires 30d;
- #!# HEADER_HTTP #!#
- #!# HEADER_NON_GZIP #!#
- }
- # Do not gzip cached files that are already gzipped
- location ~ /wp-content/cache/wp–rocket/.*_gzip$ {
- gzip off;
- types {}
- default_type text/html;
- add_header Content–Encoding gzip;
- add_header Vary “Accept-Encoding, Cookie”;
- add_header X–Rocket–Nginx–Bypass $rocket_is_bypassed;
- add_header X–Rocket–Nginx–Reason $rocket_reason;
- add_header X–Rocket–Nginx–File $rocket_file;
- add_header Strict–Transport–Security “$rocket_hsts_value”;
- expires 30d;
- #!# HEADER_HTTP #!#
- #!# HEADER_GZIP #!#
- }
- # Debug header (when file is not cached)
- add_header X–Rocket–Nginx–Bypass $rocket_is_bypassed;
- add_header X–Rocket–Nginx–Reason $rocket_reason;
- add_header X–Rocket–Nginx–File $rocket_file;
- # No HSTS header added here. We suppose it’s correctly added in the site configuration
- ###################################################################################################
- # BROWSER CSS CACHE
- #
- location ~* \.css$ {
- gzip_vary on;
- expires 30d;
- #!# HEADER_CSS #!#
- }
- ###################################################################################################
- # BROWSER JS CACHE
- #
- location ~* \.js$ {
- gzip_vary on;
- expires 30d;
- #!# HEADER_JS #!#
- }
- ###################################################################################################
- # BROWSER MEDIA CACHE
- #
- location ~* \.(ico|gif|jpe?g|png|svg|eot|otf|woff|woff2|ttf|ogg)$ {
- expires 30d;
- #!# HEADER_MEDIAS #!#
- }
以上代码复制保存为 rocket.conf 文件上传到你的 nginx/conf 目录中,然后我们只要在我们的vhsot文件中引入即可。
- # BEGIN WP rocket
- include /usr/local/nginx/conf/rocket.conf;
- # END WP rocket
然后 Nginx restart 重启一下使文件生效。按照如上配置好之后,查看网站源码,源码最底部就会出现安装成功后的提示如下:
- <!– This website is like a Rocket, isn’t it ? Performance optimized by WP Rocket. Learn more: http://wp-rocket.me – Debug: cached@1458565320 –>
能看到此信息,就说明完事ok了。
最后放下载地址:wp-rocket
转载请注明:网页阁吧 » WordPress 缓存插件 WP Rocket