Re: Кеширование по кукам для гостей форума на IPB (Invision Power Board)
Илья Шипицин
chipitsine at gmail.com
Thu Jan 10 01:53:59 UTC 2013
посмотрите в сторону APC (http://pecl.php.net/package/APC). за счет
кеширования статики вы много не выиграете (если вообще что-то выиграете), а
эффективность от php-кешей в подобных случаях обычно лучше, чем лепить
костыли на nginx-е.
9 января 2013 г., 13:15 пользователь daitepiva <nginx-forum at nginx.us>написал:
> Приветствую.
> Пытался сделать кеширование по наличию-отсутствию некоторых типичных кук
> (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 at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130110/ad4371de/attachment.html>
Подробная информация о списке рассылки nginx-ru