ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Кеширование по кукам для гостей форума на IPB (Invision Power Board)


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Кеширование по кукам для гостей форума на IPB (Invision Power Board)
  • From: Илья Шипицин <chipitsine@xxxxxxxxx>
  • Date: Thu, 10 Jan 2013 06:53:59 +0500
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=GxgWWm55rC6RZtNCEugFsWJWyo5mD394smgg640OuiE=; b=OlY5jL2qhx7RuWvFS1ygDKC7TWKbVp6a4LMh2lT/7maZGhNB30Z1XxiPAmAZVpmnnG fNJBJlZhnpGssY3Yv4RdqFYP5z+8BBFEyP/IPIDJenUoGgeaf5dgbJPY1YCQXzaa8/7f WsXOD976JqIDcOegmccPG0TE2oxl4dzhrvBdzKPub++bSFLYGyJHrLqic5roVNXVOESX sO1i1E/AJquzzsPMrinR1xlQUxyBQJvZRSCxQBmmT3KZnFPLoQkpuaEh1ZW7phLi0WRc 14xFEx8jeiL+998Y+nJha6rEAPRbitQK9tsHpPifnW0MlT2TkOXhVrFFtTD8B6R1aLe6 FNJg==
  • In-reply-to: <d370add16b213c87ffd7a0e997d830b0.NginxMailingListRussian@forum.nginx.org>
  • References: <d370add16b213c87ffd7a0e997d830b0.NginxMailingListRussian@forum.nginx.org>

посмотрите в сторону APC (http://pecl.php.net/package/APC). за счет кеширования статики вы много не выиграете (если вообще что-то выиграете), а эффективность от php-кешей в подобных случаях обычно лучше, чем лепить костыли на nginx-е.


9 января 2013 г., 13:15 пользователь daitepiva <nginx-forum@xxxxxxxx> написал:
Приветствую.
Пытался сделать кеширование по наличию-отсутствию некоторых типичных кук
(member_id pass_hash session_id) для гостей форума на IPB 2.3 (Invision
Power Board). Вроде всё работало как надо - кешировалось только гостям,
файлы в папке кеша появлялись и удалялись как надо. Но появились серьёзные
проблемы - чужие страницы, сессии, хотя кеширование было настроено именно по
отсутствию всех ключевых куков - идентификатор пользователя, хеш пароля,
идентификатор сессии. На всякий случай включил эти куки в ключ объекта, но
там было пусто или нули, т.е. при наличии хотя бы одного из них ответ не
кешировался.
Включал эти переменные в логи - есть. Включал в логи переменную
upstream_cache_status, ничего аномального не заметил.

Толи какие-то особенности работы движка, толи я что-то накосячил в конфиге.
Вот конфиг в части, касающейся кеширования:
http {
 ...
 proxy_cache_path /var/nginx/proxy_temp levels= keys_zone=dguests:100m
inactive=3m max_size=100m;
 server {
  ...
  proxy_cache_key
"$host$request_uri|$request_method|$cookie_member_id|$cookie_pass_hash";
  proxy_cache_bypass $cookie_pass_hash $cookie_member_id
$cookie_session_id;
  proxy_no_cache $cookie_pass_hash $cookie_member_id $cookie_session_id;
  proxy_ignore_headers Expires Cache-Control Set-Cookie;
  proxy_cache off;
  location ~ \.php$ {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_cache dguests;
            proxy_cache_valid 30s;
  }
 }
}

Пришлось включить Set-Cookie в proxy_ignore_headers, т.к. движок выдаёт её
гостям и страницы не кешировались вовсе.
Пробовал добавлять "proxy_hide_header "Set-Cookie";", но тогда не проходит
авторизация.

Вообще же задача в снижении нагрузки и, в идеале, повышение устройчивости к
ДДоС-атакам, за счёт кеширования страниц для гостей, а их у меня больше чем
пользователей, например, прямо сейчас онлайн 2700 гостей и 1600
пользователей.

Спасибо.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,234824,234824#msg-234824

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.