Установка и настройка Web-сервера (Linux+Nginx+Apache2)Связка двух веб-серверов, один из которых выполняет функцию фонтенда(Nginx), другой - бэкенда (Apache2), предназначена для снижения общей нагрузки на сервер. Достигается это за счет того, что более легкий и не обремененный дополнительным функционалом Nginx первым принимает все запросы пользователей. Он самостоятельно выдает по запросам статический контент, не озадачивая этой функцией тяжеловесный Apache2, который, в свою очередь, обрабатывает динамический контент. Apache2 не работает напрямую с пользователем, все их запросы проксируются Nginx, и ему же возвращаются ответы. Так достигается разделение труда: Nginx освобождает Apache от необходимости "общаться" с множеством пользователей и обрабатывать запросы на статику, которая составляет большую часть исходящего трафика. Apache не создает множества дочерних процессов, потребляющих оперативную память. Данная связка часто применяется для обеспечения работы крупных ресурсов с большой посещаемостью. Для ресурсов с маленькой посещаемостью такая связка не даст ощутимого прироста производительности. СодержаниеЕсли Вы являетесь пользователем ISPmanager, нижеизложенная информация пригодится Вам лишь для ознакомления. Его функционал позволяет создать такую связку достаточно быстро и без манипуляции с командной строкой. Недостаток лишь в том, что ISPmanager не позволяет произвести более тонкую настройку, и даже если вручную внести дополнительные коррективы в конфигурацию, созданную ISPmanager, после первой же перезагрузки он перепишет конфигурацию по-своему. Данная конфигурация сбалансирована для выполнения самого широкого круга задач, и одна из функций ISPmanager - ее поддерживать. Данный мануал был протестирован на CentOS 5.6 и Debian Squeeze. Связка работает в том же виде и на других дистрибутивах, но по причине наибольшей популярности первых, мы будем говорить именно о них. Основная часть данной статьи посвящена CentOS, но различия с Debian заключаются только в названиях пакетных менеджеров и нескольких незначительных моментах. Все особенности установки для Debian описаны в заключительной части данной статьи. Команды и примеры файлов конфигурации, не указанные в этом разделе, подходят для обеих систем. Установка nginxДля того, чтобы установить Nginx, нам понадобится репозиторий EPEL. В принципе, данный пакет есть и в основном репозитории CentOS, но в EPEL пакет собран с ключом enable_rpaf, дающим возможность посредством rpaf-модуля взаимодействовать нашей будущей связке. Чтобы подключить EPEL, введем в консоли: $ rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm Если на сервере установлена 64-битная система - команда будет немного другой: $ rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm Далее сама установка: $ yum install nginx Для Debian/Ubuntu достаточно просто установить пакет nginx командой: $ apt-get install nginx Теперь, если в браузере ввести IP-адрес сервера, он покажет тестовую страницу Nginx Конфигурация NginxСледующий этап - изменение файла конфигурации Nginx*. Наш конфиг файл должен выглядеть примерно так:
user www-data; Установка Apache2В списке пакетов для CentOS Apache2 значится как httpd, потому: yum install httpd Для Debian/Ubuntu установить apache нужно командой: $ apt-get install apache2 Приводим соответствующую часть файла конфигурации Apache /etc/httpd/conf/httpd.conf к такому виду: Listen 127.0.0.1:8080
NameVirtualHost 127.0.0.1:8080 Установка rpaf-модуляОн служит для передачи нашему backend, в данном случае, Apache, сведений об ip-адресе. Без использования данного модуля могут быть проблемы со скриптами, в которых используется ip адрес посетителя и перестанет правильно работать механизм ограничения доступа по ip адресам с помощью .htaccess. Получаем пакет: $ rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm Отключаем репозиторий, чтобы система не «притащила» ненужных нам обновлений пакетов vim /etc/yum.repos.d/centalt.repo Выставляем enabled=0 Устанавливаем пакет: yum -y --enablerepo=CentALT install mod_rpaf Установка на Debian/Ubuntu проста. Необходимо всего лишь выполнить команды: $ apt-get install libapache2-mod-rpaf $ a2enmod rpaf Настройка rpaf-модуляОткроем файл конфигурации Apache2 и допишем в конец файла следующие строки:
LoadModule rpaf_module modules/mod_rpaf-2.0.so После всех описанных манипуляций перезапустим Apache и Nginx CentOS $ service httpd restart && service nginx restart Debian/Ubuntu: $ /etc/init.d/apache2 restart Напоминаем, что полная перезагрузка Вашего сервера в данном случае не обязательна. Теперь связка работает, Nginx обрабатывает статичные данные, Apache -динамические. Обращаем Ваше внимание, что данный пример настройки действителен для одного хоста. В случае наличия более чем одного сайта, содержимое файлов конфигурации будет отличаться. Условия использования документаМатериал представленный на данной странице может быть использован Вами по своему усмотрению. Разрешается копирование и распространение предоставленного материала без изменения содержания и без предварительного уведомления администрации Clodo.ru. Мы будем признательны Вам за сообщения об ошибках в представленной документации и за предложения об улучшении документации. По этим вопросам необходимо обращаться по адресу mail@clodo.ru. При обращении не забывайте указывать URL-адрес публикации. |
