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 登录页面,不存缓存,不读取缓存,数据直接后端服务器获取

发表回复