DLE и кеширование в nginx

J
На сайте с 09.11.2009
Offline
22
2465

Доброго Нового Года, товарищи.

Такая ситуация. Поставил настроил кеширвоание в nginx. Все отлично. Работает все функции, кроме вылогинивания с сайта. Залогинивание происходит нормально. Уже добавил index.php?action=logout в отдельный location и все равно... Это мой ключ кеша:

proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$is_args|$host|$request_uri|$cookie_dle_user_id|$cookie_dle_password|cookie_dle_forum_session";

Уже какие только варианты не перепробовал. Спасает только если добавить еще и index.php в исключения кеша, тогда все нормально проходит. Подозреваю, что logout'y нужны какието операции для вылогинивания из index.php. Может кто подскажет, какой "костыль" нужно поставить чтобы заработало. А то сильно страдает производительность...

Zaqwr
На сайте с 08.08.2007
Offline
111
#1

Jwsd, Дружищие, прости, попей шампусика, расслабься =)

Администрирование, Linux, Cisco, Juniper
J
На сайте с 09.11.2009
Offline
22
#2
Zaqwr:
Jwsd, Дружищие, прости, попей шампусика, расслабься =)

Понятно, с одной стороны, мой пост это проверка - сколько народу в момент нового года будут помогать людям, а с другой... Собственно помощь :)

Я конечно все понимаю, но хотелось бы хотябы завтра узнать, что да как делать =\ А вто в гугле все вообще тихо

Andreyka
На сайте с 19.02.2005
Offline
822
#3

Ненадо кешировать залогиненых пользователей :)

Не стоит плодить сущности без необходимости
L
На сайте с 07.07.2008
Offline
89
#4
Andreyka:
Ненадо кешировать залогиненых пользователей :)

обсолютно согласен, обычно залогеных не более 10%.

кэшируешь тока тех что неимеют куки авторизации

J
На сайте с 09.11.2009
Offline
22
#5

Спасибо большое! :)

Тогда это реализуется в nginx следущим образом:


location / {
if ($cookie_namecookie && $cookie_passwordcookie){
proxy_cache on;
...

Если я что-то не правильно написал, прошу поправить, или дать линк на пример по данному вопросу.

Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#6

Лучше так:

location @nocache 
{
proxy_pass ...;
}
location ~ \.php$
{
proxy_pass ...;
if ($cookie_user) { return 412; }
error_page 412 = @nocache;
proxy_cache on;
}
С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий