Разделы базы знаний
|
База знаний ::
web-Сервер ::
Nginx + Apache
Установка и настройка связки Nginx+ApacheСвязка двух веб-серверов, один из которых выполняет функцию фронтенда (Nginx), другой - бэкенда (Apache2), предназначена для снижения общей нагрузки на сервер. Достигается это за счет того, что более легкий и не обремененный дополнительным функционалом Nginx первым принимает все запросы пользователей. Он самостоятельно выдает по запросам статический контент (изображения, html-файлы, javascript-скрипты..), не озадачивая этой функцией тяжеловесный Apache, который, в свою очередь, обрабатывает динамический контент. Apache не работает напрямую с пользователем, все их запросы проксируются Nginx, и ему же возвращаются ответы. Так достигается разделение труда: Nginx освобождает Apache от необходимости “общаться” с множеством пользователей и обрабатывать запросы на статику, которая составляет большую часть исходящего трафика. Apache не создает множества дочерних процессов, потребляющих оперативную память. Данная связка часто применяется для обеспечения работы крупных ресурсов с большой посещаемостью. Для ресурсов с маленькой посещаемостью такая связка не даст ощутимого прироста производительности.
Если Вы являетесь пользователем ISPmanager, нижеизложенная информация пригодится Вам лишь для ознакомления. Его функционал позволяет создать такую связку достаточно быстро и без манипуляции с командной строкой. Данная статья была протестирована на CentOS 5 и Debian Squeeze. Связка работает в том же виде и на других дистрибутивах, но по причине наибольшей популярности первых, мы будем говорить именно о них. Основная часть данной статьи посвящена CentOS, но различия с Debian заключаются только в названиях пакетных менеджеров и нескольких незначительных моментах. Все особенности установки для Debian описаны в заключительной части данной статьи. Команды и примеры файлов конфигурации, не указанные в этом разделе, подходят для обеих систем. Установка nginxCentOSДля начала нам необходимо подключить репозитории EPEL и CentALT. Это нужно для того, чтобы мы смогли установить Nginx с поддержкой модуля RPAF и сам модуль для Apache. Для подключения этих репозиториев введите в консоли команды:
Далее, выполните команду установки пакета nginx:
В большинстве случаев требуется, чтобы nginx загружался автоматически при запуске сервера. Для этого выполните следующую команду:
Debian/UbuntuДля установки пакета в ОС Debian или Ubuntu достаточно выполнить команду в консоли:
Nginx автоматически будет добавлен в автозагрузку при запуске сервера. Конфигурация NginxСледующий этап - изменение файла конфигурации Nginx. Путь к файлу конфигурации: Наш конфиг файл должен выглядеть примерно так:
Установка Apache2CentOSВ списке пакетов для CentOS Apache2 значится как httpd, потому необходимо выполнить следующую команду в консоли:
Debian/UbuntuДля Debian/Ubuntu установить Apache нужно командой:
Конфигурация ApacheПриводим соответствующую часть файла конфигурации Apache к такому виду: Файл конфигурации располагается:
Установка модуля RPAFТ.к. теперь все запросы к Apache приходят не от удалённых клиентов, а от Nginx, то в итоге IP-адрес клиента Apache определяет как локальный (127.0.0.1). Для решения этой проблемы нам нужен модуль RPAF. Он берет тело заголовка X-Forwarded-For, присланного от фронтенда (Nginx) и заменяет значение заголовка REMOTE_ADDR на бекенде (Apache). CentOSУстановка в CentOS выполняется следующей командой:
Debian/UbuntuВ Debian или Ubuntu установка и включение модуля RPAF в Apache выполняется следующими командами:
Настройка модуля RPAFФайл конфигурации RPAF находится: Он должен содержать следующие строки:
Если у вас установлена ОС CentOS, то в начало этого файла обязательно добавьте строку:
Завершение настройки (перезапуск сервисов)На этом настройка связки закончена. Теперь нужно только перезапусть Apache и Nginx. Команды перезапуска сервисов различаются для ОС (из-за различий в названиях пакетов). Для CentOS выполните команды:
Для Debian и Ubuntu команды будут следующие:
Теперь связка работает, Nginx обрабатывает статичные данные, Apache - динамические. Обращаем Ваше внимание, что данный пример настройки действителен только для одного хоста. Условия использования документаМатериал представленный на данной странице может быть использован Вами по своему усмотрению. Разрешается копирование и распространение предоставленного материала без изменения содержания и без предварительного уведомления администрации Clodo.ru. Мы будем признательны Вам за сообщения об ошибках в представленной документации и за предложения об улучшении документации. По этим вопросам необходимо обращаться по адресу mail@clodo.ru. При обращении не забывайте указывать URL-адрес публикации. |