Caching Nginx缓存和Yii
我的Nginx+php fpm有一个配置 我制作了nginx缓存 在http部分Caching Nginx缓存和Yii,caching,yii,nginx,Caching,Yii,Nginx,我的Nginx+php fpm有一个配置 我制作了nginx缓存 在http部分 fastcgi_cache_path /var/cache/nginx/ levels=1:2 keys_zone=nginx_webpy_cache:1m inactive=1d; fastcgi_temp_path /var/cache/nginx/temp; 在服务器部分 set $no_cache 0; if ($request_method = POST) { se
fastcgi_cache_path /var/cache/nginx/ levels=1:2 keys_zone=nginx_webpy_cache:1m inactive=1d;
fastcgi_temp_path /var/cache/nginx/temp;
在服务器部分
set $no_cache 0;
if ($request_method = POST)
{
set $no_cache 1;
}
#Don't cache if the URL contains a query string
if ($query_string != "")
{
set $no_cache 1;
}
#Don't cache the following URLs
if ($request_uri ~* "/(api/|login|logout|corporate/login|corporate/logout)")
{
set $no_cache 1;
}
#Don't cache if there is a cookie called PHPSESSID
if ($http_cookie = "PHPSESSID")
{
set $no_cache 1;
}
location ~ \.php$ {
fastcgi_cache_bypass $no_cache;
fastcgi_no_cache $no_cache;
fastcgi_pass php-fpm;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/site/index.php;
include fastcgi_params;
try_files $fastcgi_script_name =404;
fastcgi_cache nginx_webpy_cache;
fastcgi_cache_valid 200 301 302 304 2m;
fastcgi_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri|$cookie_login_id";
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
fastcgi_hide_header "Set-Cookie";
}
location ~* \.(ico|js|txt|jpg|jpeg|png|css|pdf)$ {
root /srv/www/site;
access_log off;
expires 1h;
add_header Pragma public;
add_header Cache-Control "public";
}
大部分工作正常,但我无法注销,我注销了,但仍然喜欢登录用户,如何修复它?不幸的是,在大多数情况下,您无法使用服务器HTTP缓存真正缓存任何经过身份验证的页面。例如,用户在试图访问自己的个人资料时,只会看到其他人的页面(除非您的URL确实与众不同,这通常也不是最佳做法) 解决方案是使用片段缓存,请参阅特定于Yii的教程