使用 Nginx 反向代理 WordPress 并开启缓存时,出现“其他人访问看到后台信息“的解决方案

chatgpt给出了很多的解决方案,最后采用最方便安全的 Nginx 反向代理示例:

在Nginx反向代理的配置中添加:

# 安全缓存策略
proxy_no_cache $cookie_wordpress_logged_in;
proxy_no_cache $http_cookie;
proxy_cache_bypass $cookie_wordpress_logged_in;
proxy_cache_bypass $http_cookie;

解释为:
1:如果请求中存在 wordpress_logged_in Cookie → Nginx 不要把响应写入缓存
2:如果请求包含任何 Cookie(即 $http_cookie 非空),不要把响应写入缓存。
3:如果请求中有 wordpress_logged_in Cookie → Nginx 不读取缓存,直接请求后端
4:如果请求带有任何 Cookie → Nginx 不读取缓存,直接请求后端。
注:建议把两个$http_cookie 注释掉,以免所有缓存都失效

  # 后台和登录页面直接代理,不缓存
    location ~ ^/(wp-admin|wp-login\.php) {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For    
        $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_no_cache 1;
        proxy_cache_bypass 1;
    }

proxy_no_cache 1;
proxy_cache_bypass 1;
登录用户访问后台 /wp-admin/wp-login.php 登录页面,不存缓存,不读取缓存,数据直接后端服务器获取


已发布

分类

来自

标签:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注