Раздел 6. Руководства, учебные пособия и инструкции RU EN Пункт 55. Руководство по настройке обратного прокси Помимо того, что он является «базовым» веб-сервером и предоставляет статический и динамический контент конечным пользователям, Apache httpd (как и большинство других веб-серверов) также может выступать в качестве обратного прокси-сервера, также известного как «шлюз». "сервер. В таких сценариях httpd сам не генерирует и не размещает данные, а контент получает один или несколько внутренних серверов, которые обычно не имеют прямого подключения к внешней сети. Когда httpd получает запрос от клиента, сам запрос проксируется на один из этих внутренних серверов, который затем обрабатывает запрос, генерирует контент и затем отправляет этот контент обратно на httpd, который затем генерирует фактический HTTP-ответ обратно клиенту. . Существует множество причин для такой реализации, но, как правило, типичные обоснования связаны с безопасностью, высокой доступностью, балансировкой нагрузки и централизованной аутентификацией/авторизацией. В этих реализациях крайне важно, чтобы структура, дизайн и архитектура внутренней инфраструктуры (тех серверов, которые фактически обрабатывают запросы) были изолированы и защищены от внешнего воздействия; что касается клиента, обратный прокси-сервер является единственным источником всего контента. Типичная реализация ниже: Обратный прокси
Простое обратное проксирование
Директива ProxyPass "/" "http://www.example.com/"
Чтобы гарантировать, что заголовки и ProxyPass "/" "http://www.example.com/" ProxyPassReverse "/" "http://www.example.com/" Только определенные URI могут быть проксированы, как показано в этом примере: ProxyPass "/images" "http://www.example.com/" ProxyPassReverse "/images" "http://www.example.com/" В приведенном выше примере любые запросы, начинающиеся с Кластеры и балансировщики
Каким бы полезным ни было вышеизложенное, у него все еще есть недостатки, связанные с тем, что если (один) внутренний узел выйдет из строя или станет сильно загруженным, проксирование этих запросов не даст реального преимущества. Что необходимо, так это возможность определить набор или группу внутренних серверов, которые могут обрабатывать такие запросы, и для обратного прокси-сервера для балансировки нагрузки и аварийного переключения между ними. Эту группу иногда называют кластером, но термин Apache httpd — балансировщик . Один определяет балансировщик, используя
директивы <Прокси балансировщик://myset> BalancerMember http://www2.example.com:8080 BalancerMember http://www3.example.com:8080 ProxySet lbmethod=bytraffic </прокси> ProxyPass "/images/" "балансировщик://myset/" ProxyPassReverse "/images/" "balancer://myset/"
Схема НамекатьBalancerMembers также иногда называют работниками . Конфигурация Balancer и BalancerMember
Вы можете настроить многочисленные детали конфигурации балансировщиков и
рабочих с помощью различных параметров, определенных в
<Прокси балансировщик://myset> BalancerMember http://www2.example.com:8080 BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 ProxySet lbmethod=bytraffic </прокси> ProxyPass "/images" "балансировщик://myset/" ProxyPassReverse "/images" "balancer://myset/" Отказоустойчивость
Вы также можете точно настроить различные сценарии отработки отказа, подробно указав, к каким рабочим процессам и даже к каким балансировщикам следует обращаться в таких случаях. Например, приведенная ниже настройка реализует 2 случая аварийного переключения: в первом случае
<Прокси балансировщик://myset> BalancerMember http://www2.example.com:8080 BalancerMember http://www3.example.com:8080 loadfactor=3 timeout=1 BalancerMember http://hstandby.example.com:8080 status=+H BalancerMember http://bkup1.example.com:8080 lbset=1 BalancerMember http://bkup2.example.com:8080 lbset=1 ProxySet lbmethod=byrequests </прокси> ProxyPass "/images/" "балансировщик://myset/" ProxyPassReverse "/images/" "balancer://myset/"
Волшебство этой настройки аварийного переключения заключается в настройке Менеджер по балансировке
Одной из самых уникальных и полезных функций обратного прокси-сервера Apache httpd является встроенное приложение управления балансировкой . Подобно
<Расположение "/balancer-manager"> Балансировщик-менеджер SetHandler Требовать локального хоста </местоположение> ПредупреждениеНе включайте менеджер балансировки , пока не защитите свой сервер. В частности, убедитесь, что доступ к URL-адресу строго ограничен.
При доступе к обратному прокси-серверу по этому URL-адресу (например: Эта форма позволяет администратору devops настраивать различные параметры, переводить рабочих в автономный режим, изменять методы балансировки нагрузки и добавлять новые работы. Например, нажав на сам балансировщик, вы попадете на следующую страницу: При нажатии на рабочего отображается эта страница:
Чтобы эти изменения сохранялись при перезапуске обратного прокси-сервера, убедитесь, что
Динамические проверки работоспособности
Прежде чем httpd проксирует запрос рабочему процессу, он может «проверить» , доступен ли этот рабочий процесс, установив Флаги статуса BalancerMemberВ балансировщике-менеджере текущее состояние или статус воркера отображается и может быть установлено/сброшено. Значения этих статусов следующие:
|