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