wordpress使用nginx增加页面缓存,减少服务端资源消耗

WordPress有多个级别的缓存可以配置,如使用Redis缓存减少mysql数据库的压力,也可以使用nginx静态缓存减少php及mysql的压力,一般不会涉及到nginx系统配置文件nginx.conf,只修改自己的网站配置文件即可,如xxx.com.conf

    fastcgi_cache_path  /your/path levels=1:2 keys_zone=your_keyword:128m inactive=1d max_size=10g;
    fastcgi_temp_path /your/path2;
    fastcgi_cache_key "$scheme$request_method$host$request_uri";
    fastcgi_cache_use_stale error timeout invalid_header http_500;

    fastcgi_ignore_headers Cache-Control Expires Set-Cookie;

    server{
    ...
        set $skip_cache 0;
        #post访问不缓存
        if ($request_method = POST) {
            set $skip_cache 1;
        }
        #动态查询不缓存
        if ($query_string != "") {
            set $skip_cache 1;
        }
        #具体的文章页面,缓存
        #后台等特定页面不缓存(其他需求请自行添加即可)
        if ($request_uri ~* "/wp-admin/|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
            set $skip_cache 1;
        }
        #对登录用户、评论过的用户不展示缓存
        if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
            set $skip_cache 1;
        }

        ...
        location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
            expires 100d;
        }

        location ~ \.php$ {
            fastcgi_pass   unix:/somedir/php/php8.1-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
            add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
            #新增的缓存规则
            fastcgi_cache_bypass $skip_cache;
            fastcgi_no_cache $skip_cache;
            add_header Last-Modified $date_gmt;
            add_header X-Frame-Options SAMEORIGIN;
            add_header X-Content-Type-Options nosniff;
            add_header X-XSS-Protection "1; mode=block";
            fastcgi_cache some_keyword;
            fastcgi_cache_valid 200 301 302 1d;
            proxy_cache_valid 404 30m;
            proxy_cache_valid any 1h;
        }
    }

nginx重新加载配置文件生效,nginx -s reload。访问前端页面后,也已在指定的缓存路径下,看到很多nginx自己生成的缓存文件。可以根据自己的需求,调整缓存上面配置文件中的缓存策略,时间等。

版权声明

本站文章、图片、视频等(除转载外),均采用知识共享署名 4.0 国际许可协议(CC BY-NC-SA 4.0),转载请注明出处、非商业性使用、并且以相同协议共享。

© 空空博客,本文链接:https://www.yeetrack.com/?p=1539