• Русский
  • L4/L7 Таймаут

    Содержание

    Основная концепция

    L4/L7 таймаут — это функция, предоставляемая ALB. Она используется для настройки времени таймаута для L4/L7 прокси.

    Таймаут реализован с помощью Lua-скрипта, и при его изменении не требуется перезагрузка Nginx.

    CRD

    timeout:
      properties:
        proxy_connect_timeout_ms:
          type: integer
        proxy_read_timeout_ms:
          type: integer
        proxy_send_timeout_ms:
          type: integer
      type: object

    Конфигурация может быть задана в:

    • Frontend: .spec.config.timeout
    • Rule: .spec.config.timeout

    Что означает таймаут

    Существует три типа таймаутов:

    1. proxy_connect_timeout_ms: Определяет время таймаута для установления соединения с upstream-сервером. Если соединение не будет установлено в течение этого времени, запрос завершится с ошибкой.

    2. proxy_read_timeout_ms: Определяет время таймаута для чтения ответа от upstream-сервера. Таймаут устанавливается между двумя последовательными операциями чтения, а не на весь ответ целиком. Если в течение этого времени данные не поступают, соединение закрывается.

    3. proxy_send_timeout_ms: Определяет время таймаута для отправки запроса upstream-серверу. Аналогично таймауту чтения, он устанавливается между двумя последовательными операциями записи. Если в течение этого времени данные не могут быть отправлены, соединение закрывается.

    Аннотация Ingress

    АннотацияОписание
    nginx.ingress.kubernetes.io/proxy-connect-timeoutСоответствует proxy_connect_timeout_ms в CRD
    nginx.ingress.kubernetes.io/proxy-read-timeoutСоответствует proxy_read_timeout_ms в CRD
    nginx.ingress.kubernetes.io/proxy-send-timeoutСоответствует proxy_send_timeout_ms в CRD

    Таймаут на уровне порта

    Вы можете настроить таймаут непосредственно на порту, который используется как таймаут L4.