未名Q

此生若能得幸福安稳,谁又愿颠沛流离。

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: 订阅 订阅 :: 管理 ::

Nginx Web 缓存服务

只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令手动清除缓存;但是我们可以通过Nginx的模块ngx_cache_purge清除指定URL的缓存。

proxy_cache

缓存后端服务器的内容,可能是任何内容,包括静态的和动态,减少了nginx与后端通信的次数,节省了传输时间和后端宽带
https://www.cnblogs.com/redirect/p/10066766.html

fastcgi_cache

缓存fastcgi生成的内容,很多情况是php生成的动态的内容,少了nginx与php的通信的次数,更减轻了php和数据库(mysql)的压力,这比用memcached之类的缓存要轻松得多。
https://www.cnblogs.com/chenpingzhao/p/4983703.html
https://www.shephe.com/tutorial/wordpress-nginx-fastcgi-cache/


Nginx 配置

http

# Context:http,fastcgi_cache start.
    fastcgi_cache_path C:/tmp/nginx-cache/y.z levels=1:2 keys_zone=y.z:100m inactive=1d max_size=1G;    #如果有多个站点,复制行,改path与keys_zone中的y.z
    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;
    # Context:http,fastcgi_cache end.

server

# Context:server,fastcgi_cache start.
        set $skip_cache 0;    # 缓存策略指示变量,0为启用,1为禁用
        if ($request_method = POST) {
            set $skip_cache 1;
        }
        if ($query_string != "") {
            set $skip_cache 1;
        }
        if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|sitemap(_index)?.xml") {    # wordpress 后台
            set $skip_cache 1;
        }
        if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {    # wordpress 登录用户或发表评论者
            set $skip_cache 1;
        }
        # Context:server,fastcgi_cache end.

location

# Context:location,一般是【~ \.php$】,fastcgi_cache start.
            fastcgi_cache y.z;         # 在http中定义的keyzone值,y.z
            fastcgi_cache_bypass $skip_cache;
            fastcgi_no_cache $skip_cache;
            fastcgi_cache_valid 200 10m;    # 后端返回成功的情况下缓存10分钟
            add_header X-Cache $upstream_cache_status;    # 调试使用:添加header字段,指示缓存命中状态;MISS:缓存未命中,HIT:缓存命中,BYPASS:规则排除的不缓存
            # Context:location,fastcgi_cache end.

WordPress配置

  1. 在 wp-config.php 中添加:define( 'RT_WP_NGINX_HELPER_CACHE_PATH','C:/tmp/nginx-cache/y.z');
  2. 安装 Nginx Helper 插件,在Windows环境里,只能使用 Delete local server cache files 方式。

image

posted on 2024-12-08 16:57  未名Q  阅读(10)  评论(0编辑  收藏  举报