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