Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Nutno nastavit:
- # Cache key: $scheme$request_method$host$rocket_mobile_detection$request_uri
- # Cache size: 512
- # Cache timeout: 6 hodin
- # Disable caching for locations (! pozor na české názvy stránek !):
- # /wp-admin.*
- # /feed.*
- # /index.php
- # /[a-z0-9_-]+-sitemap([0-9]+)?.xml
- # /sitemap(_index)?.xml
- # /wp-comments-popup.php
- # /wp-links-opml.php
- # /wp-locations.php
- # /wp-.*.php
- # /xmlrpc.php
- # /wp-app.php
- # /wp-login.php
- # /wp-register.php
- # /wp-mail.php
- # /shop.*
- # /cart.*
- # /checkout.*
- # /my-account.*
- gzip on;
- gzip_comp_level 9;
- gzip_http_version 1.0;
- gzip_proxied any;
- gzip_min_length 1100;
- gzip_buffers 16 8k;
- gzip_types text/plain text/html text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon image/bmp image/svg+xml;
- gzip_disable "MSIE [1-6].(?!.*SV1)";
- gzip_vary on;
- ###################################################################################################
- # 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: 3.6.0.1
- # Tested with NGINX: 1.19 (mainline)
- #
- # Version 2.1.1
- #
- ###################################################################################################
- # Add debug information into header
- set $rocket_debug 1;
- ###################################################################################################
- # 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-Serving-Static
- 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 value
- set $rocket_hsts_value "max-age=31536000; includeSubDomains";
- ###################################################################################################
- # PAGE CACHE
- #
- # Is GZIP accepted by client ?
- if ($http_accept_encoding ~ gzip) {
- set $rocket_encryption "_gzip";
- }
- # Is Brotli accepted by client ?
- if ($http_accept_encoding ~ br) {
- set $rocket_encryption "";
- }
- # Is SSL request ?
- if ($https = "on") {
- set $rocket_https_prefix "-https";
- set $rocket_hsts 1;
- }
- # 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
- # Desktop: index.html or index-https.html
- # Mobile: index-mobile.html or index-mobile-https.html
- set $rocket_end "/cache/wp-rocket/$http_host${request_uri}index$rocket_https_prefix.html$rocket_encryption";
- set $rocket_url "/wp-content$rocket_end";
- set $rocket_file "$document_root/wp-content$rocket_end";
- set $rocket_mobile_detection "$document_root/wp-content/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 ~* "(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$ {
- etag on;
- add_header Vary "Accept-Encoding, Cookie";
- add_header Cache-Control "no-cache, no-store, must-revalidate";
- add_header X-Rocket-Nginx-Serving-Static $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";
- }
- # Do not gzip cached files that are already gzipped
- location ~ /wp-content/cache/wp-rocket/.*_gzip$ {
- etag on;
- gzip off;
- types {}
- default_type text/html;
- add_header Content-Encoding gzip;
- add_header Vary "Accept-Encoding, Cookie";
- add_header Cache-Control "no-cache, no-store, must-revalidate";
- add_header X-Rocket-Nginx-Serving-Static $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";
- }
- # Debug header (when file is not cached)
- add_header X-Rocket-Nginx-Serving-Static $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$ {
- etag on;
- gzip_vary on;
- expires 30d;
- }
- ###################################################################################################
- # BROWSER JS CACHE
- #
- location ~* \.js$ {
- etag on;
- gzip_vary on;
- expires 30d;
- }
- #### Imagify #########
- location ~* ^(/.+)\.(jpg|jpeg|jpe|png|gif)$ {
- add_header Vary Accept;
- etag on;
- expires 30d;
- if ($http_accept ~* "webp"){
- set $imwebp A;
- }
- if (-f $request_filename.webp) {
- set $imwebp "${imwebp}B";
- }
- if ($imwebp = AB) {
- rewrite ^(.*) $1.webp;
- }
- }
- ###################################################################################################
- # BROWSER MEDIA CACHE
- #
- location ~* \.(ico|svg|eot|otf|woff|woff2|ttf|ogg)$ {
- etag on;
- expires 30d;
- }
- location ~ / {
- try_files $uri $uri/ /index.php ;
- }
- # WORDPRESS PERMALINKS
- if (!-e $request_filename) {
- rewrite ^(.+)$ /index.php last;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement