Nginx proxy_cache

Maxim Dounin mdounin на mdounin.ru
Ср Ноя 18 17:47:14 UTC 2015


Hello!

On Wed, Nov 18, 2015 at 12:21:58PM -0500, vhvvx777 wrote:

[...]

> location ~ (admin.php|index.php?action=logout) { 

Just a side note: часть про "index.php?action=logout" смысла не 
имеет, т.к. a) в location проверяется только путь, но не 
аргументы, и б) символ "?" в регулярных выражениях имеет 
специальное значение.

[...]

> Объясните мне в чем беда, все работает, но при авторищаци через соц сети
> (DLE 10.4), выбивает
> Обнаружена проблема с работой PHP сессий на вашем сервере. Вам нужно
> обратиться в службу поддержки вашего хостинга, для проверки
> работоспособности PHP сессий.
> 
> Что я уже не менял, все равно не помогает, только если убрать proxy_cache

Беда в том, что вы в конфиге явно попросили nginx не верить тому, 
что бекенд сообщает про возможность кеширования тех или иных 
ответов, и вместо этого руководствоваться правилами, написанными в 
конфиге.  И, видимо, при авторизации через социальные сети 
случаются какие-то запросы, которые у вас кешируются, но не 
должны.  Смотрите внимательно, что именно запрашивается в вашем 
DLE, и где нужно доотключить кеширование.

Другое очевидное решение - выкинуть из конфига всё эту сложную 
логику с переопределением правил кеширования, и положиться на то, 
что возвращает бекенд.  Но это, если бекенд написан без оглядки на 
возможность кеширования, приведёт к тому, что кешироваться ответы 
бекенда не будут или почти не будут.

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru