|
| 1 | +# configuration directives to support WP Fastest Cache plugin. |
| 2 | +# note not all features are supported. |
| 3 | + |
| 4 | +# default location block |
| 5 | +# - directs mobile visitors to @mobileaccess, if configured. |
| 6 | +# - directs cache misses to PHP (via @cachemiss). |
| 7 | +# - directs requests "that shouldn't be cached" to PHP (via @cachemiss): example - requests from a logged-in user. |
| 8 | +location / { |
| 9 | + error_page 418 = @cachemiss; # to handle cache misses |
| 10 | + error_page 419 = @mobileaccess; # to handle mobile visits |
| 11 | + recursive_error_pages on; |
| 12 | + |
| 13 | + # bypass POST requests |
| 14 | + if ($request_method = POST) { return 418; } |
| 15 | + |
| 16 | + # uncommenting the following degrades the performance on certain sites. YMMV |
| 17 | + # if ($query_string != "") { return 418; } |
| 18 | + |
| 19 | + # bypass cache for common query strings |
| 20 | + if ($arg_s != "") { return 418; } # search query |
| 21 | + if ($arg_p != "") { return 418; } # request a post / page by ID |
| 22 | + if ($arg_amp != "") { return 418; } # amp test |
| 23 | + if ($arg_preview = "true") { return 418; } # preview post / page |
| 24 | + if ($arg_ao_noptimize != "") { return 418; } # support for Autoptimize plugin |
| 25 | + |
| 26 | + # if WP related cookies are found, skip cache |
| 27 | + if ($http_cookie ~* "wordpress_logged_in_") { return 418; } |
| 28 | + if ($http_cookie ~* "comment_author_") { return 418; } |
| 29 | + if ($http_cookie ~* "wp_postpass_") { return 418; } |
| 30 | + |
| 31 | + # uncomment the following two lines to support mobile cache |
| 32 | + # if ($http_user_agent ~* (2.0\ MMP|240x320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800|iPad)) { return 419; } |
| 33 | + # add_header "Vary" "User-Agent"; |
| 34 | + |
| 35 | + # uncomment the following if deemed fit |
| 36 | + # if ($http_user_agent ~* (w3c\ |w3c-|acs-|alav|alca|amoi|audi|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-|dang|doco|eric|hipt|htc_|inno|ipaq|ipod|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-|lg/u|maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|palm|pana|pant|phil|play|port|prox|qwap|sage|sams|sany|sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo|teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|wap-|wapa|wapi|wapp|wapr|webc|winw|winw|xda\ |xda-|ipad)) { return 419; } |
| 37 | + |
| 38 | + # look for cached version; if-not-found, then send the request to PHP |
| 39 | + try_files "/wp-content/cache/all/${uri}index.html" $uri $uri/ /index.php$is_args$args; |
| 40 | + |
| 41 | + #--> all the following would apply, only if the request hits the cache |
| 42 | + |
| 43 | + # add some useful headers |
| 44 | + add_header "X-Cache" "HIT"; |
| 45 | + add_header "X-CF-Powered-By" "WP Fastest Cache"; |
| 46 | + add_header "Vary" "Cookie"; |
| 47 | + # include "globals/hsts.conf"; |
| 48 | + |
| 49 | + expires 30m; |
| 50 | + # expires modified 30m; |
| 51 | + add_header "Cache-Control" "must-revalidate"; |
| 52 | + |
| 53 | + # For proxies |
| 54 | + # add_header "Cache-Control" "s-maxage=600"; |
| 55 | +} |
| 56 | + |
| 57 | +# location to handle requests come from mobile devices |
| 58 | +location @mobileaccess { |
| 59 | + # look for cached version for mobiles; if-not-found, then send the request to PHP |
| 60 | + try_files "/wp-content/cache/all/${uri}index.html" $uri $uri/ /index.php$is_args$args; |
| 61 | + |
| 62 | + #--> all the following would apply, only if the request hits the cache |
| 63 | + |
| 64 | + # add some useful headers |
| 65 | + add_header "X-Cache" "HIT - Mobile"; |
| 66 | + add_header "X-CF-Powered-By" "WP Fastest Cache"; |
| 67 | + add_header "Vary" "User-Agent, Cookie"; |
| 68 | + # include "globals/hsts.conf"; |
| 69 | + |
| 70 | + expires 30m; |
| 71 | + # expires modified 30m; |
| 72 | + add_header "Cache-Control" "must-revalidate"; |
| 73 | + |
| 74 | + # For proxies |
| 75 | + # add_header "Cache-Control" "s-maxage=600"; |
| 76 | +} |
| 77 | + |
| 78 | +location @cachemiss { |
| 79 | + # on cache miss, send the request to PHP |
| 80 | + try_files $uri $uri/ /index.php$is_args$args; |
| 81 | +} |
0 commit comments