I’m assuming you have single WordPress site example.com (–wp --basic)
Its possible to change the caching from --basic to the --wpfc with some manual work,
First open the example.com
ee site edit example.com
Replace Headings:
OLD VALUE:
# WPSINGLE BASIC NGINX CONFIGURATION
NEW VALUE:
# WPSINGLE FAST CGI NGINX CONFIGURATION
Lets replace --basic nginx configuration with --wpfc nginx configuraion
OLD VALUE:
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass php;
}
include common/wpcommon.conf;
include common/locations.conf;
}
NEW VALUE:
set $skip_cache 0;
# POST Requests And Urls With A Query String Should Always Go To PHP
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}
# Don't Cache Uris Containing The Following Segments
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|wp-.*.php|index.php|/feed/|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
set $skip_cache 1;
}
# Don't Use The Cache For Logged In Users Or Recent Commenters
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $skip_cache 1;
}
# Use Cached Or Actual File If They Exists, Otherwise Pass Request To WordPress
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ ^/wp-content/cache/minify/(.+\.(css|js))$ {
try_files $uri /wp-content/plugins/w3-total-cache/pub/minify.php?file=$1;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass php;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_cache WORDPRESS;
}
location ~ /purge(/.*) {
fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";
}
include common/wpcommon.conf;
include common/locations.conf;
}
Once you finish the replace OLD VALUE with NEW VALUE, save the file
Install & Configure Plugins:
- nginx-helper - https://rtcamp.com/wordpress-nginx/tutorials/single-site/fastcgi-cache-with-purging/#install-nginx-helper-plugin
- w3 total cache
W3 Total Cache Settings:
Page Cache: Disable
Database Cache: Memcached
Object Cache: Memcached
Browser Cache: Disable
Lets cross check --wpfc works perfectly
TESTING:
Run following command on your local system
curl -I example.com
First time you get rt-Fastcgi-Cache: MISS
and after that you will get rt-Fastcgi-Cache: HIT