Apache. Документация на русском


Разделы:   1    2    3    4    5    6    7    8    9      10      11    12    13    14    15    16  

Раздел 10. Модули Апача

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176      177      178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

 <         > 
  RU            EN  

Пункт 177. Модуль Apache mod_proxy_hcheck

Этот модуль обеспечивает динамическую проверку работоспособности членов балансировщика (воркеров). Это может быть включено для каждого работника. Проверка работоспособности выполняется независимо от фактических запросов обратного прокси-сервера.

Этот модуль требует обслуживания mod_watchdog .

Параметры

Механизм проверки работоспособности включается с помощью дополнительных параметров BalancerMember, которые настраиваются стандартным образом через ProxyPass :

Новое состояние состояния BalancerMember (флаг) определяется с помощью этого модуля: " C ". Когда рабочий процесс отключается из-за сбоев, определенных модулем проверки работоспособности, этот флаг устанавливается, и его можно увидеть (и изменить) через файл balancer-manager .

Параметр По умолчанию Описание
hcметод Никто Динамическая проверка работоспособности не выполняется. Варианты:
МетодОписаниеПримечание
НиктоНе выполняется динамическая проверка работоспособности
TCPУбедитесь, что сокет для бэкэнда может быть создан: например, "вы встали"
ПАРАМЕТРЫОтправить HTTP OPTIONS запрос в бэкенд*
ГОЛОВАОтправить HTTP HEAD запрос в бэкенд*
ПОЛУЧАТЬОтправить HTTP GET запрос в бэкенд*
*: Если hcexpr не используется, HTTP-статус 2xx или 3xx будет интерпретироваться как прохождение проверки работоспособности.
проходит 1 Количество успешных тестов проверки работоспособности перед повторным включением рабочего процесса
hcfails 1 Количество неудачных тестов проверки работоспособности перед отключением рабочего
hcинтервал 30 Период проверки работоспособности в секундах (например, выполняется каждые 30 секунд)
hcuri   Дополнительный URI, добавляемый к рабочему URL для проверки работоспособности.
hctemplate   Имя шаблона, созданного с ProxyHCTemplate помощью для настройки параметров проверки работоспособности этого воркера
hcexpr   Имя выражения, созданного с помощью ProxyHCExpr , используемого для проверки работоспособности заголовков ответа.
Если коды состояния от 2xx до 3xx не используются, это означает успех.

Примеры использования

В следующем примере показано, как можно настроить проверку работоспособности для различных внутренних серверов:

 ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
ProxyHCExpr gdown {%{REQUEST_STATUS} =~ /^[5]/}
ProxyHCExpr in_maint {hc('body') !~ /На обслуживании/}
<Прокси балансировщик://foo>
 BalancerMember http://www.example.com/hcmethod=GET hcexpr=in_maint hcuri=/status.php
 BalancerMember http://www2.example.com/hcmethod=HEAD hcexpr=ok234 hcinterval=10
 BalancerMember http://www3.example.com/ hcmethod=TCP hcinterval=5 hcpasses=2 hcfails=3
 BalancerMember http://www4.example.com/
</прокси>
ProxyPass "/" "балансировщик://foo"
ProxyPassReverse "/" "balancer://foo" 

В этом сценарии http://www.example.com/ работоспособность проверяется путем отправки GET /status.php запроса на этот сервер и проверки того, что возвращенная страница не содержит строки « На обслуживании» . Если это так, этот сервер переводится в режим сбоя проверки работоспособности и отключается. Эта динамическая проверка выполняется каждые 30 секунд, что является значением по умолчанию.

http://www2.example.com/ проверяется путем отправки простого HEAD запроса каждые 10 секунд и проверки состояния ответа 2xx, 3xx или 4xx. http://www3.example.com/ проверяется каждые 5 секунд, просто гарантируя, что сокет к этому серверу включен. Если серверная часть помечена как «недоступная» и проходит 2 проверки работоспособности, она будет повторно включена и снова добавлена в балансировщик нагрузки. Требуется 3 последовательных отказа проверки работоспособности, чтобы отключить сервер и вывести его из ротации. Наконец, http://www4.example.com/ вообще не проверяется динамически.



Директива ProxyHCExpr

Описание:Создает именованное выражение условия, которое используется для определения работоспособности серверной части на основе ее ответа.
Синтаксис: ProxyHCExpr name {ap_expr expression}
Контекст:конфигурация сервера, виртуальный хост
Положение дел:Расширение
Модуль:mod_proxy_hcheck

Директива ProxyHCExpr позволяет создать именованное выражение условия, которое проверяет заголовки ответов внутреннего сервера, чтобы определить его работоспособность. Затем это именованное условие может быть назначено членам балансировщика с помощью hcexpr параметра

ProxyHCExpr: Разрешить 2xx/3xx/4xx в качестве передачи

 ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
ProxyPass "/apps" "http://backend.example.com/" hcexpr=ok234 
Выражение может использовать фигурные скобки ("{}") в качестве разделителей кавычек в дополнение к обычным кавычкам.

При использовании метода проверки работоспособности (например: GET ), результатом которого является тело ответа, само это тело можно проверить с помощью ap_expr функции hc() выражения, уникальной для этого модуля.

В следующем примере мы отправляем бэкенду запрос GET , и если тело ответа содержит фразу « На обслуживании» , мы хотим отключить бэкэнд.

ProxyHCExpr: Проверка тела ответа

 ProxyHCExpr in_maint {hc('body') !~ /На обслуживании/}
ProxyPass "/apps" "http://backend.example.com/" hcexpr=in_maint hcmethod=get hcuri=/status.php 

ПРИМЕЧАНИЕ. Поскольку текст ответа может быть довольно большим, лучше всего использовать его для определенных страниц состояния.



Директива ProxyHCTemplate

Описание:Создает именованный шаблон для настройки различных параметров проверки работоспособности
Синтаксис: ProxyHCTemplate name parameter=setting <...>
Контекст:конфигурация сервера, виртуальный хост
Положение дел:Расширение
Модуль:mod_proxy_hcheck

Директива ProxyHCTemplate позволяет создать именованный набор (шаблон) параметров проверки работоспособности, который затем может быть назначен членам балансировщика через hctemplate параметр

ProxyHCTШаблон

 ProxyHCTemplate tcp5 hcmethod=tcp hcinterval=5
ProxyPass "/apps" "http://backend.example.com/" hctemplate=tcp5 


Директива ProxyHCTPsize

Описание:Устанавливает общий размер пула потоков на уровне сервера, используемого для рабочих процессов проверки работоспособности.
Синтаксис: ProxyHCTPsize <size>
Контекст:конфигурация сервера
Положение дел:Расширение
Модуль:mod_proxy_hcheck

Если Apache httpd и APR созданы с поддержкой потоков, модуль проверки работоспособности перенесет работу фактической проверки на пул потоков, связанный с процессом Watchdog, что позволяет выполнять параллельные проверки. Директива ProxyHCTPsize определяет размер этого пула потоков. Если установлено значение 0 , пул потоков вообще не используется, что приводит к сериализованным проверкам работоспособности. Размер по умолчанию 16.

Размер проксиHCTP

 ПроксиHCTPразмер 32 


 <         > 

Пункты:   85    86    88    89    90    91    92    93    94    95    96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176      177      178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

Рейтинг@Mail.ru