Гостевое или прозрачное кеширование в phpbbex

Список разделов phpBBex 1.x (поддерживается) Поддержка 1.x

Описание: У вас проблемы с phpBBex 1.x и вам необходима помощь? Спрашивайте здесь!
Правила раздела: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть вопроса. Подробно описывайте проблему. Не забудьте указать версию phpBBex и какие моды установлены, по возможности добавьте скриншоты проблемы или ссылку на страницу с проблемой.
Модератор: Поддержка

Сообщение #1 Alexandr_ » 31.10.2013, 13:48

Актуально для тех, кто держит сайты на своих серверах!

Уже давно, на своих сайтах, я использую такого рода кеширование, средствами вэб сервера nginx. Это дает действительно хороший прирост в скорости загрузки сайта а также значительное (многократное) снижение нагрузки на сервер. Не задействуя при этом php а соответственно и субд вообще.

для тех кто не знает:
К примеру вы гость, вы первый посетитель после того как включили данное кеширование для своего форума. И вы заходите на свой форум к примеру на главную страницу как гость. И как только вы посетите первую страницу на своем форуме, она тут же будет закеширована вэб сервером. Также закеширована будет следующая страница, по которой вы перейдете как гость, и так далее. После этого, все страницы которые вы, или другие гости вашего форума посетили, будут закешированы и отдаваться вэб сервером как статические html страницы, без обращений к базе данных и без задействования php.
В настройках данного кеширования, можно указать время жизни закешированной страницы, если к ней не обращались какое то время.
Также в настройках, можно указать, что не будет кешироваться гостям, главная страница, страница статистики, авторизации, чата и т.д.

Минусов не много, так как в основном страдает динамическая часть, счетчики сообщений, капчи и т.д. (не на js)
Для всех кто авторизован на форуме кеширование работать не будет. И работа с форумом будет обычной.
Под авторизованым пользователем страница не будет закеширована а также не будет работать само кеширование на форуме.

Собственно вопрос?
Как красиво, запретить начинать сессию в phpbbex при гостевом посещении?
Alexandr_
Автор темы
Репутация: 5
С нами: 10 лет 6 месяцев

Сообщение #2 factotum » 31.10.2013, 14:22

не готов с ходу ответить на технический вопрос, но как раз болею подобным. Отчего вопрос и к Вам:
кешируете в память или на диск? Если на диск, то почему не в память?

По вашему вопросу - так понимаю, что должен быть менеджер кеша, распределяющий запросы. По другому, плохо себе представляю, как вы раскидываете в разные стороны запросы через php и в кеш?
Либо средствами сервера проверять кукизы, затем проверять наличие кеша и уже потом решать, куда отправить. Вроде также свое рода менеджер.

Собственно весь сыр бор из-за желания отдавать страницу за 0,2-0,3 секунды. Одним железом точно не выкрутиться. Вот пример на noud.js, кеш отдается за как раз в рамках.
factotum
Откуда: Люксембург
Репутация: 234
С нами: 12 лет

Сообщение #3 Alexandr_ » 31.10.2013, 14:39

У меня на серверах везде стоит подобный конфиг:
nginx+php5-fpm, php кеширует: в память APC, а в файловый кеш eAccelerator, вместе на выходе получаю Time : 0.041s | 9 Queries | GZIP : Off

Гостевое кеширование средствами nginx (файловое) в настройках указываем путь к папке с кешом куда nginx генерирует все страницы посещенные гостями форума. И да идет проверка на куки. Если они приняты, кеш отключается этому пользователю. И он пользуеться форумом в обычном режиме и страницы генерирует php, а кеширует (в моем случае) apc+eaccelerator.

В выдаче кеша, php не имеет ни малейшего отношения. PHP гинерирует только 1 раз, гостю не закешированную страницу.

PS. В инете очень много про это написано, с приведенной статистикой.
Alexandr_
Автор темы
Репутация: 5
С нами: 10 лет 6 месяцев

Сообщение #4 factotum » 31.10.2013, 15:09

Alexandr_, в теории все здорово. но не разобрал.
Alexandr_:В выдаче кеша, php не имеет ни малейшего отношения. PHP генерирует только 1 раз, гостю не закешированную страницу.
тогда с какого должна начинаться сессия PHP?

Добавлено спустя 2 минуты 50 секунд:
Alexandr_:в память APC, а в файловый кеш eAccelerator
А на nginx - varnish нет? APC + eAccelerator вместе выглядят по крайней мере странно..
factotum
Откуда: Люксембург
Репутация: 234
С нами: 12 лет

Сообщение #5 Alexandr_ » 31.10.2013, 15:24

factotum:тогда с какого должна начинаться сессия PHP?
Таки стартует

factotum: APC + eAccelerator вместе выглядят по крайней мере странно..
Ничего странного

factotum:А на nginx - varnish нет?
Меня в этом вопросе всецело устраивает nginx, зачем вам нужен varnish :biggrin: другой вопрос.
Последний раз редактировалось Alexandr_ 31.10.2013, 15:35, всего редактировалось 1 раз.
Alexandr_
Автор темы
Репутация: 5
С нами: 10 лет 6 месяцев

Сообщение #6 Sumanai » 31.10.2013, 15:32

Alexandr_:Ну к примеру заходишь на форум как гость а он тебе: Предыдущее посещение: Сегодня, 10:52

А с временем постов? Заходишь, а он тебе в графе время сообщения "Менее минуты назад". Обновляешь через пару минут- опять тоже самое. Помнится, кто- то тут уже задавал вопрос по смене времени, были какие- то траблы.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 2 месяца

Сообщение #7 factotum » 31.10.2013, 15:52

Alexandr_:Меня в этом вопросе всецело устраивает nginx, зачем вам нужен varnish другой вопрос.
да, было

Добавлено спустя 8 минут 57 секунд:
кстати еще одно интересное обсуждение
factotum
Откуда: Люксембург
Репутация: 234
С нами: 12 лет

Сообщение #8 VEG » 01.11.2013, 19:54

К сожалению, для корректной работы phpBBex должен всегда создавать сессию, даже для гостей.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 12 лет


Вернуться в Поддержка 1.x