![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| abibok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 8.6.2007 Репутация: нет Всего: нет |
Привет.
Не уверен, что данная тема создается в подходящем форуме, но все же. Есть идея, и вопрос в том, можно ли ее реализовать. Сайт, на нем документы. Каждый документ имеет две версии 1. статичный html 2. динамическая страница на php Статика - для анонимов, всяких случайных посетителей из поисковиков. Динамика - для зарегистрированных пользователей, которых меньшинство среди всех посетителей (напр. в день приходит 10000 чел, просмотров 37000, постоянных посетителей около 500, активных зарегистрированных около 200) - содержит всякое интересное для юзеров - голосования за комменты, подсветки всякие и т.д. Цель - снизить нагрузку на сервер. Я понимаю, что можно сделать проверку типа
, но быть может есть решения, без вызова php? Если да - то как? Если нет, буду благодарен за любые соображения/ссылки по теме. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
опыта реализации подобных механизмов у меня нет, но есть некоторые соображения. прошу отнестись с долей скептицизма.
если "без РНР", значит, у нас не будет информации из сессии о том, залогинен пользователь или нет. Будут только НТТР-заголовки. Среди которых - установленные cookie. Так вот идея в том, чтоб устанавливать зарегистрированным пользователям cookie, при наличии которой затем делать mod_rewrite/SSI/действия с другими неизвестными мне механизмами, чтоб максимально быстро отдать статику. в РНР коде "динамического варианта" проверку залогиненности придется, конечно, оставить. Но я не думаю, что "хакеров" с вручную установленными cookie будет много. |
|||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Собственно, идея skyboy очень не плохая. Я бы только добавил, что можно избавиться от повторной авторизации на PHP, если хранить данные авторизации в memcache. А реализуется все это достаточно просто средствами nginx, алгоритм будет примерно следующий:
1. Приходит запрос в nginx, если он не содержит secret_key, то отдаем пользователю статическую страницу. 2. Шлем запрос в memcache (средствами nginx'а) по имеющемуся secret_key, если ничего не найдено, то отдаем пользователю статическую страницу (или, к примеру, шлем на форму авторизации) 3. Если по secret_key было получено какое-то значение, отправляем запрос на исполнение PHP Записывать данные в memcache и устанавливать secret_key нужно сразу после аутентификации пользователя. |
|||
|
||||
| IgorIV |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
Для Вордпресса есть плагин кеширования, Supercache plus. Он позволяет сохранять на диск кешированые страницы в формате .html.
Я с ним немного игрался и думаю, что конфигурация для nginx как раз подойдёт.
Если что, в гугле - supercache plus nginx Это сообщение отредактировал(а) IgorIV - 21.1.2010, 19:36 |
|||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
IgorIV, тогда уж проще proxy cache настроить.
|
|||
|
||||
| IgorIV |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
А как распознать гостей и пользователей? Кому из кеша старую, кому новую страницу.
|
|||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Так в приведенном вами конфиге тоже гости от пользователей не отличаются. Просто идет проверка, если для определенного урла есть статический html, то отдаем его, иначе шлем запрос бэкэнду.
Proxy cache занимается тем же самым, только без вмешательства бэкэнда, сам создает статические html и сам их чистит. Добавлено через 4 минуты и 40 секунд Больше похоже, что это сделано для apache, т.к. он не имеет таких же гибких возможностей кеширования, как nginx. |
|||
|
||||
| IgorIV |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
||||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Где вы увидели что бы я писал про PHP код? Естественно это конфиг nginx, но сделан он, имхо, только для совместимости плагина с nginx'ом, а сам изначально плагин писался, как костыль для apacha. Т.е. все тоже самое в nginx'е "работает из коробки". Причем тут метод запроса и различные группы пользователей? Естественно кеш для POST запросов не будет работать и это не нужно проверять специально, это азы работы любого кеша. Если это и является отличием гостей от пользователей, то что по вашему мешает использовать это с кешом? Это сообщение отредактировал(а) sTa1kEr - 22.1.2010, 09:31 |
|||
|
||||
| IgorIV |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: 2 Всего: 8 |
sTa1kEr, ну не умею читать того что не написано. А вот додумывать горазд
С этим не согласен, абсолютно. Плагин писался как костыль модуль для вордпресса. Ладно, есть 2 варианта, есть выбор для вопрошавшего. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |