Параметр health_check#

Группа параметров health_check предназначена для проверки работоспособности сервиса.

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

enabled

Обязательный

Вкл./Откл. модуля health_check

true, false

—

check_interval

Опциональный

Интервал времени проверки запроса в ms

Целочисленное значение

30000

check_interval_down

Опциональный

Интервал времени для запроса hc в ms, если пир не доступен (находится в состоянии down)

Целочисленное значение

—

fail_count

Опциональный

Количество неудачных запросов на сервер для маркировки сервера „down“

Целочисленное значение

5

rise_count

Опциональный

Количество удачных запросов на сервер для маркировки сервера „up“

Целочисленное значение

2

drain

Опциональный

Количество неудачных запросов для маркировки сервера как „drain“

Целочисленное значение

2

timeout

Опциональный

Таймаут проверки запроса в ms

Целочисленное значение

1000

default_state

Опциональный

Состояние сервера по умолчанию

up, down

down

port

Опциональный

Порт, на который отправляется запрос для проверки состояния

Целочисленное значение

Значение параметра server из upstream_groups

type

Опциональный

Тип запроса проверки

tcp, ssl_hello, http, mysql, ajp, fastcgi

tcp

http_send_method

Опциональный

HTTP метод запроса. Используется, если type: http

GET, POST

—

http_send_url

Опциональный

URL-адрес для проверки работоспособности сервиса

Текстовое значение

/

http_send_version

Опциональный

HTTP версия запроса

1.0, 1.1

1.0

http_send_headers

Опциональный

Строки заголовков запросов

Последовательность параметров и их значения

—

http_send_req

Опциональный

Тело запроса. Используется, если type: http и http_send_method != GET

Текстовое значение

—

fastcgi_param

Опциональный

Запрос, который отправляется, когда тип проверки — fastcgi. Используется, если type: fastcgi

Текстовое значение

—

http_status_alive

Опциональный

Код возврата, который считается положительным

Текстовое значение

—

check_shm_size

Опциональный

Размер общей памяти для проверки больших групп серверов

Текстовое значение

1M

check_response_body

Опциональный

Нечувствительный к регистру поиск в теле ответа. Используется, если type: http

Текстовое значение

—

check_response_body_pattern

Опциональный

Нечувствительное к регистру регулярное выражение для поиска соответствия в теле ответа. Используется, если type: http

Текстовое значение

—

check_response_body_drain

Опциональный

Нечувствительный к регистру поиск в теле ответа, чтобы отметить сервер как „drain“. Используется, если type: http

Текстовое значение

—

check_response_body_drain_pattern

Опциональный

Нечувствительное к регистру регулярное выражение для поиска соответствия в теле ответа, чтобы отметить сервер как „drain“. Используется, если type: http

Текстовое значение

—

check_keepalive_req

Опциональный

Количество запросов, отправленных по соединению

Целочисленное значение

—

check_status_type

Опциональный

Тип возврата, который считается положительным

html, csv, json

—

ssl_options

Опциональный

Настройки ssl/tls соединения с upstream (backend). Параметры описаны в разделе Параметр upstream_ssl

Группа параметров и их значения

—

Пример:

health_check:
  enabled: true
  check_interval: 3000
  check_interval_down: 120000
  fail_count: 3
  rise_count: 1
  drain: 1
  timeout: 5000
  default_state: up
  type: http
  check_status_type: json
  check_response_body_pattern: '.*OK.*'
  check_response_body_drain_pattern: '.*FULL.*'
  http_status_alive: "http_2xx http_3xx"
  http_send_method: POST
  http_send_url: /health
  http_send_version: 1.1
  http_send_headers:
    - 'Content-Type: application/json'
    - 'Accept: application/json'
  http_send_req: '{\"status\":\"healthy\"}'
  port: {{ uko_web_upstream_v1_port }}
  ssl_options:
    ssl_use: true
    ssl_protocols:
      - 'TLSv1.2'
    ssl_ciphers:
      - value:
        - "HIGH"
      - prefix: "!"
        value:
          - "aNULL"
      - value:
        - "NULL-SHA256"
    ssl_certificate: client_dev.cer
    ssl_certificate_key: client_dev.key
    ssl_verify: 'on'
    ssl_name: 'example.ru'
    ssl_trusted_certificate: ca_dev.cer

В результате будет отправлен следующий запрос на сервер:

POST /health HTTP/1.1
Content-Type: application/json
Accept: application/json
Host: 127.0.0.1
Content-Length: 20
Connection: close

{"status":"healthy"}