Кэширование в nginx для анонимных пользователей
Здравствуйте
С праздниками!
В связке ubuntu 10.04 lts + nginx 0.7.64 + php 5.3 php-fpm + apc + memcached + livestreet 0.4.1 страшно хочется настроить кэширование всего сайта для анонимных пользователей.
Кэшировать fastcgi_ запросы получается, но криво. Анонимусы могут видеть страницу авторизованного пользователя или авторизованные видят страницу для анонимуса. Иногда не совсем верно работает login/logout.
Очевидно что нужно отлавливать куки и по ним выдавать кэшированный контент или обычный.
Если вы используете аналогичную связку с кэшированием, очень интересно взглянуть на конфиги.
Так же готов проспонсировать написание, тестирование. Т.е. все просто, авторизованные получают контент как обычно, а анонимусы видят кэш.
Примеры:
dklab.ru/chicken/nablas/56.html
drupal.ru/node/48471
"При высокой посещаемости даже кэширование на короткий срок (5 минут и меньше) уже дает огромный прирост в производительности, ведь кэш работает очень быстро. Даже закэшировав страницу всего на 30 секунд, вы все равно добьетесь значительной разгрузки сервера, сохранив при этом динамичность обновления данных (во многих случаях обновления раз в 30 секунд вполне достаточно). "
Всему сообществу и пользователям livestreet это решение должно пригодится. Ведь нет ничего лучше работающего адски быстро любимого проекта на не дорогом VPS в Европе.
Шквал вопросов
Может моя связка не очень?
Каких самых лучших результатов вы добились используя аналогичные связки?
Какой у вас response time при приличной нагрузке в 50-100 запросов в секунду.
Очень интересны ваши конфиги, результаты тестов на «боевых» серверах.
Тюните ли вы my.cnf, выставляя innodb size, table cache и другие настройки, которые советует mysqltuner.pl?
Вообщем интересно все, как вы оптимизируете и настраиваете свои сервера.
Что показывает siege, например при такой строчке
Давайте найдем решение, чтобы сделать наши livestreet проекты стали самыми быстрыми в интернетах.
Не знаю правда или миф, но быстро работающим сайтам поисковики шлют больше трафа :-)
ps: Autocompleter перестал работать верно в Chrome и IE.
С праздниками!

Кэшировать fastcgi_ запросы получается, но криво. Анонимусы могут видеть страницу авторизованного пользователя или авторизованные видят страницу для анонимуса. Иногда не совсем верно работает login/logout.
Очевидно что нужно отлавливать куки и по ним выдавать кэшированный контент или обычный.
Если вы используете аналогичную связку с кэшированием, очень интересно взглянуть на конфиги.
Так же готов проспонсировать написание, тестирование. Т.е. все просто, авторизованные получают контент как обычно, а анонимусы видят кэш.
Примеры:
dklab.ru/chicken/nablas/56.html
drupal.ru/node/48471
"При высокой посещаемости даже кэширование на короткий срок (5 минут и меньше) уже дает огромный прирост в производительности, ведь кэш работает очень быстро. Даже закэшировав страницу всего на 30 секунд, вы все равно добьетесь значительной разгрузки сервера, сохранив при этом динамичность обновления данных (во многих случаях обновления раз в 30 секунд вполне достаточно). "
Всему сообществу и пользователям livestreet это решение должно пригодится. Ведь нет ничего лучше работающего адски быстро любимого проекта на не дорогом VPS в Европе.
Шквал вопросов
Может моя связка не очень?
Каких самых лучших результатов вы добились используя аналогичные связки?
Какой у вас response time при приличной нагрузке в 50-100 запросов в секунду.
Очень интересны ваши конфиги, результаты тестов на «боевых» серверах.
Тюните ли вы my.cnf, выставляя innodb size, table cache и другие настройки, которые советует mysqltuner.pl?
Вообщем интересно все, как вы оптимизируете и настраиваете свои сервера.
Что показывает siege, например при такой строчке
siege -d1 -c100 -t30s http://site.com/
Давайте найдем решение, чтобы сделать наши livestreet проекты стали самыми быстрыми в интернетах.
Не знаю правда или миф, но быстро работающим сайтам поисковики шлют больше трафа :-)
ps: Autocompleter перестал работать верно в Chrome и IE.
9 комментариев
PS: у самого так вот: ls 0.4.2 + debian lenny + nginx + php 5.3 + php-fpm + xcache
Просто связка работает само собой. Gzip, opcode cache все дела.
Какая у вас конфигурация сервера?
Можете siege'ом прогнать для теста?
В принципе сделал все отсюда: habrahabr.ru/blogs/nginx/71501/
И не забудьте учесть последний коммент как раз для проблем с авторизацией.
И другие.
Думаю мой разум в жуткой каше, что лучше обождать вашей помощи :)
Спасибо.
Я имею ввиду что сейчас максимум чего удалось добиться это кэширование nginx fastcgi запросов для всех пользователей. А нужно только для анонимусов.
Сюда Пробовал совершенно разные комбинации, с visitor_id, меняли процессы в ActionLogin.class.php, использовали login_id, а не phpsessid. Все одно, авторизованным пользователям выдается кэш. Например комменты публикуются, но если выйти со страницы и вернуться, то комента нет, до тех пор пока кэш не станет Expired.
Никак не отловить что человек залогинен в данный момент.
Отключить кэширование в определенных location получается без проблем.
Мне было бы достаточно взглянуть на ваш конфиг хоста nginx, раз у вас кэшироание работает правильно. И, если вы меняли что либо в ActionLogin.class.php будет здорово узнать.
cgi.fix_pathinfo=0