Хмм у меня последняя версия Livestreet 1.0.3 и в config.php нету параметра $config['security']['user_session_key']. Хотя после проставления этого параметра ошибка моя всё равно присуствует.
На сайтах Altocms использовал эту проверку, но работает, тончее не работает аналогично Livestreet:
proxy_cache_bypass $cookie_user_key;
proxy_no_cache $cookie_user_key;
а) У меня сделано: /classes/actions/ActionRegistration.class.php поменять строчку
$this->User_Authorization($oUser, false);
на
$this->User_Authorization($oUser, true);
б) Бьюсь с тестовым сайтом, никак не получается настроить кэширование статики. Огромное благодарю Genius_A за выложенный код и за комментарии в личке. Убрал по его совету классы js-login-form-show и js-registration-form-show. При этом:
1) Попытался зарегистрироваться, и походить по сайту, и разлогиниться. Так все успешно работает. И только один раз на момент от регистрации до выхода в первый раз.
2) Потом попытался без входа под каким-либо пользователем походить по страницам:
«Топики», «Блоги», «Люди», «Активность», «About»
3) Потом попытался снова войти под этим же пользователем, и выйти. При этом после успешного входа, на страницах «Топики», «Блоги», «Активность», «About» видно, что как будто польльзотель не залогинен, а на страницах, где я не был, например топик «Ким Кардашиан и Канье Уэст показали свою любовь к Givenchy в эти выходные!» видно, что я залогинен под пользователем, в моем случае «test», также видно это же и на странице «Люди», так как у нас «location ~* ^/(engine|login|registration|ajax|settings|video|people)/».
Если убирать proxy_ignore_headers «Cache-Control» «Expires» «Set-Cookie»; то все работает при логировании, и последующем выходе. Но, если использовать не только location / а и другие location как у Вас в примере, то кэш будет писаться в виде:
<code>
цpR
Ќ
KEY: GET|||site.ru|/templates/skin/fortune/images/favicon.ico?v1
HTTP/1.1 200 OK
Date: Wed, 30 Oct 2013 11:15:37 GMT
Server: Apache/2.2.17 (Ubuntu)
Last-Modified: Sun, 16 Dec 2012 14:56:32 GMT
ETag: "17c800f3-37e-4d0f978628810"
Accept-Ranges: bytes
Content-Length: 894
Connection: close
Content-Type: image/x-icon
</code>
правда если на Вашем сайте кликнуть по «создать», войти или зарегистрироваться, то перенаправляет на отдельную страницу sla.kiev.ua/login/ или sla.kiev.ua/registration/, а у меня выскакивает окно на js, где на выбор «Войти», «Регистрация» или «Восстановление пароля».
Все работает безупречно, с учетом правок в /classes/actions/ActionRegistration.class.php $this->User_Authorization($oUser, false); на $this->User_Authorization($oUser, true);
Но, получается так, что, когда пользователь логинится ему подставляется кэш страницы как будто он не залогинен, хотя по факту, если допустим для админа написать site.ru/admin админка сайта открывается. Правда это для LS, но думаю, что это не связано с CMS. Также если «погулять» по тем страницам, на которых другие пользователи не заходили, кэш страницы отдается уже с залогиненным пользователем.
При этом кешируются все как и раньше. При проверке:
передается сразу на @fallback.
Хмм у меня последняя версия Livestreet 1.0.3 и в config.php нету параметра $config['security']['user_session_key']. Хотя после проставления этого параметра ошибка моя всё равно присуствует.
У меня, например, вот эта деректива не срабатывает disable_symlinks if_not_owner from=$root_path;
proxy_cache_bypass $cookie_user_key;
proxy_no_cache $cookie_user_key;
$this->User_Authorization($oUser, false);
на
$this->User_Authorization($oUser, true);
б) Бьюсь с тестовым сайтом, никак не получается настроить кэширование статики. Огромное благодарю Genius_A за выложенный код и за комментарии в личке. Убрал по его совету классы js-login-form-show и js-registration-form-show. При этом:
1) Попытался зарегистрироваться, и походить по сайту, и разлогиниться. Так все успешно работает. И только один раз на момент от регистрации до выхода в первый раз.
2) Потом попытался без входа под каким-либо пользователем походить по страницам:
«Топики», «Блоги», «Люди», «Активность», «About»
3) Потом попытался снова войти под этим же пользователем, и выйти. При этом после успешного входа, на страницах «Топики», «Блоги», «Активность», «About» видно, что как будто польльзотель не залогинен, а на страницах, где я не был, например топик «Ким Кардашиан и Канье Уэст показали свою любовь к Givenchy в эти выходные!» видно, что я залогинен под пользователем, в моем случае «test», также видно это же и на странице «Люди», так как у нас «location ~* ^/(engine|login|registration|ajax|settings|video|people)/».
Конфиг nginx.conf brouhaha.ru/nginx.conf_my
Сам сайт brouhaha.ru/
Что делать ума не приложу…
PS: Genius_A благодарю за помощь.
Если убирать proxy_ignore_headers «Cache-Control» «Expires» «Set-Cookie»; то все работает при логировании, и последующем выходе. Но, если использовать не только location / а и другие location как у Вас в примере, то кэш будет писаться в виде:
При этом nginx.conf имеет такой вид:
При этом логирование и разлогирование работает, ну это видно и из кэша wholepage, что там мало данных.
логин по пути site.ru/login/
регистрация по пути site.ru/registration/
правда если на Вашем сайте кликнуть по «создать», войти или зарегистрироваться, то перенаправляет на отдельную страницу sla.kiev.ua/login/ или sla.kiev.ua/registration/, а у меня выскакивает окно на js, где на выбор «Войти», «Регистрация» или «Восстановление пароля».
сайт я Вам в личку скинул.
Как я понимаю, это всегда такие значения для Livestreet.
pastebin.com/ySPvmt4X
Вот мой полный nginx.conf
При этом скачал плагин Firebug и там нет переменной key среди cookie, посмотрел в DOM, есть только LIVESTREET_SECURITY_KEY.
Но, получается так, что, когда пользователь логинится ему подставляется кэш страницы как будто он не залогинен, хотя по факту, если допустим для админа написать site.ru/admin админка сайта открывается. Правда это для LS, но думаю, что это не связано с CMS. Также если «погулять» по тем страницам, на которых другие пользователи не заходили, кэш страницы отдается уже с залогиненным пользователем.