Студия веб дизайна Original - создание сайтов, web дизайн, создание логотипа, оригинальный дизайн, редизайн, интернет реклама
Студия веб дизайна Original - создание сайтов, web дизайн, создание логотипа, оригинальный дизайн, редизайн, интернет реклама
Студия веб дизайна Original - создание сайтов, web дизайн, создание логотипа, оригинальный дизайн, редизайн, интернет реклама

Вы знаете, что такое прокси-сервер? Конечно же, вы это знаете! Это такая скотина, которая сидит между вами и интернетом, и кормит ваш браузер протухшими веб-страницами.

Оказывается, дорогой моему сердцу Apache тоже умеет быть такой скотиной, причем притворяется, что работает от этого быстрее. Еще бы - бери тухлые документы да корми ими клиентов.

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

Общая суть метода такова: вы создаете два сервера, один из которых (backend) занимается генерацией контента, а второй (frontend) отдает уже сгенерированные первым сервером страницы, причем если два (или двести двадцать два) юзера запросили одну страницу, к первому попадет только один запрос, а остальные запомнит и обслужит второй.

Теперь перейдем от агитации к техническим деталям. Во-первых, сервер должен быть собран с модулем mod_proxy, если это не так - установите его. Мне больше по душе установка динамических модулей через apxs, но делайте как знаете, точнее, как умеете лучше всего.

После этого в httpd.conf следует описать следующие параметры:

Listen 8001
#Любой незанятый порт, на нем будет сидеть backend
Listen 80
#Без этого тоже не обойтись :)
ProxyRequests On
#Включаем сам модуль
ProxyVia On
#Говорим от кого пришел запрос
CacheSize 5000
#Размер кеша в килобайтах
CacheRoot "/usr/local/apache/cache"
#Тут будет лежать кеш
CacheMaxExpire 24
#Через сколько часов лежания контент считается тухлым
CacheGcInterval 2
#Интервал в часах для проверки объема кеша и удаления старья
#Если хотите, раскомментируйте следующую строчку
#NoConcurrentCacheUpdates On
#для чего - не знаю :) в описании нет

После этого необходимо настроить сами frontend и backend-серверы. Делаете два виртуалхоста таким образом:

<VirtualHost ip.add.res.s:8001>
#порт, который вы указали выше для backend
ServerName 127.0.0.1
DocumentRoot "/home/apache/htdocs"
ServerAdmin mixailo@webhowto.ru
#и еще куча параметров
</VirtualHost>

#А теперь frontend
<VirtualHost ip.add.res.s:80>
ServerName www.webhowto.ru
#Ваш домен
ProxyPass / http://127.0.0.1:8001/
#Редирект на backend
ProxyPassReverse http://127.0.0.1:8001/ /
#Обратно
CacheRoot "/usr/local/apache/cache/"
#Тут будет кеш
#NoCache forum
#Это раскомментируйте, если не хотите кешировать
#Добавьте остальные параметры по вкусу
</VirtualHost>

Ага, все здорово, осталось только создать папку для кеша: создайте ее и установите права на нее 777 для пользователя, под которым у вас работает Apache (сейчас в основном это пользователь apache).

Создали? Перезапускайте Apache, и убедитесь, что ничего не работает :). Почему не работает? Не знаю, у меня не сразу заработало :). Самое главное - идея понятна? Конечно понятна. А дальше - вперед и с песней на httpd.apache.org/docs/!

Рейтинг@Mail.ru
Студия веб дизайна Original - создание сайтов, web дизайн, создание логотипа, оригинальный дизайн, редизайн, интернет реклама
Студия веб дизайна Original - создание сайтов, web дизайн, создание логотипа, оригинальный дизайн, редизайн, интернет реклама
Студия веб дизайна Original - создание сайтов, web дизайн, создание логотипа, оригинальный дизайн, редизайн, интернет реклама
Используются технологии uCoz