Re: Анонс: статья "Подводные камни при использовании кэширования в nginx"
Alex Ivanov
jungo495 at gmail.com
Mon Nov 2 21:36:19 MSK 2009
Похожая ситуация. У нас сделано кеширование по cookie. Иногда анонимным
пользователям показываются закешированные куски с подверждением входа и
прочее. В целом все работает нормально.
Кому интересно, конфиг ниже.
server {
listen 80;
server_name domain.ru;
charset utf-8;
set $backend 0;
root /www/;
index default.php;
location ~* \.(rtf|doc|gz|pdf|txt|jpg|js|css|gif|jpeg|png|ico|bmp|swf)$ {
root /www/;
}
if ($uri ~ \.(pdf|txt|jpg|js|css|gif|jpeg|png|ico|bmp|swf)$) {
set $backend 0;
}
if (!-e $request_filename) {
rewrite ^(.+)$ /default.php last;
}
# тут определяем локейшн - такой в котором есть / - то есть любой
location ~ \/ {
default_type text/html;
gzip_types application/octet-stream;
index default.php index.php index.html index.htm;
# Реврайт для логина и логаута
if (!-e $request_filename ) {
rewrite ^(.*)$ /default.php last;
}
if ($http_cookie !~ "th_auth" ) {
set $backend 1;
}
if ($http_cookie ~ "PHPSESSID") {
set $backend 0;
}
if ($request_method = POST) {
set $backend 0;
}
if ($request_method != GET) {
set $backend 0;
}
if ($backend = 1) {
add_header Content-Type "text/html; charset=utf-8";
set $memcached_key "$request_uri";
memcached_pass 127.0.0.1:11211;
error_page 404 405 502 504 = @fallback;
break;
}
return 404;
error_page 404 405 502 504 = @fallback;
break;
}
location @fallback {
root /www;
fastcgi_pass unix:/tmp/php-fpm.socket;
fastcgi_index default.php;
fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name;
include fastcgi_params;
#break;
}
location ~ /\.ht {
deny all;
}
location = /50x.html {
root /usr/local/www/nginx-dist;
}
}
2 ноября 2009 г. 10:09 пользователь Vladislav <tvword at gmail.com> написал:
>
> Sky Cat пишет:
>>
>> Как я уже писал выше, проблем почти нет, все кэшируется нормально. Но
иногда для зарегистрированных юзеров показывается страница анонимов и
наоборот. Побороть это без правки кода Друпала пока не получилось.
>
> Поэтому ждем (и вместе просим ;) поддержки
> X-Accel-Depend и
> X-Accel-New
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20091102/4bca3099/attachment.html>
More information about the nginx-ru
mailing list