【发布时间】:2014-05-04 15:30:42
【问题描述】:
我已经在我们的网站上实现了 FastCGI 缓存,并且看到了极大的速度改进。然而,FastCGI 缓存键似乎不够独特。如果我登录,我的名字会出现在标题中。但是,假设缓存仍然有效,下一个登录的人仍然会在标题中看到我的名字。
有没有办法让每个用户的缓存键都是唯一的?理想情况下使用来自用户 Cookie 或 PHP 会话的唯一标识符?我尝试实现了下面的答案,但 Nginx 无法重启。
Log in value from Set-Cookie header in nginx
请注意,我的缓存键如下所示:
fastcgi_cache_key "$scheme$request_method$host$request_uri";
更新: 我的想法是,如果我可以解析发送到 Nginx 的 HTTP 标头,那么我可以获取 PHP SESSION ID 并使用它。但是,我无法在任何地方找到如何执行此操作的示例。现在我有这样的东西,它不起作用。
http_cookie ~* PHPSESSID=([0-9a-z]+) {
set $ses_id $1;
}
【问题讨论】: