PHP5.5FastCGI缓存

PHP5.5FastCGI缓存,php,nginx,fastcgi,Php,Nginx,Fastcgi,我已经在我们的网站上实现了FastCGI缓存,并且看到了速度的极大提高。但是,FastCGI缓存密钥似乎不够唯一。如果我登录,我的名字会出现在标题中。但是,假设缓存仍然有效,下一个登录的人仍然会在标题中看到我的名字 是否有办法使缓存密钥在每个用户的基础上唯一?理想情况下,使用来自用户cookie或PHP会话的唯一标识符?我尝试实现下面的答案,但Nginx无法重新启动 注意:我的缓存密钥如下所示: fastcgi_cache_key "$scheme$request_method$host$re

我已经在我们的网站上实现了FastCGI缓存,并且看到了速度的极大提高。但是,FastCGI缓存密钥似乎不够唯一。如果我登录,我的名字会出现在标题中。但是,假设缓存仍然有效,下一个登录的人仍然会在标题中看到我的名字

是否有办法使缓存密钥在每个用户的基础上唯一?理想情况下,使用来自用户cookie或PHP会话的唯一标识符?我尝试实现下面的答案,但Nginx无法重新启动

注意:我的缓存密钥如下所示:

fastcgi_cache_key "$scheme$request_method$host$request_uri";
更新: 我的想法是,如果我可以解析发送给Nginx的HTTP头,那么我就可以获取PHP会话ID并使用它。然而,我在任何地方都找不到这样做的例子。现在我有这样的东西,它不起作用

http_cookie ~* PHPSESSID=([0-9a-z]+) {
    set $ses_id $1;
}

我能够用这个方法解决上面的问题。最困难的部分实际上是找到模块,实现解决方案非常简单

我使用了他们的示例配置:

userid         on;
userid_name    uid;
userid_domain  example.com;
userid_path    /;
userid_expires 365d;
userid_p3p     'policyref="/w3c/p3p.xml", CP="CUR ADM OUR NOR STA NID"';
然后将用户ID添加到我的fastCGI缓存密钥:

fastcgi_cache_key "$scheme$request_method$host$request_uri$uid_got";
希望这个答案能帮助别人比我更快地发现这个有用的模块