Параметр modifiers#

Группа modifiers позволяет изменять содержимое заголовков запроса и ответа.

В случае, если не указаны трансформации и модификации заголовка Forwarded, этот заголовок дополняется, если пришел, через запятую значением for = $formatted_original_remote_addr.

Название

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

Описание

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

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

modifiers

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

—

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

—

modifiers.set_header

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

Переопределение или замена заголовка в запросе клиента

Последовательность строковых значений

—

modifiers.proxy_host_resolved

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

Если установлен, то в заголовке Host будет значение IP:Port, иначе в заголовке будет запись: <имя хоста из конфига>:Port

true, false

—

modifiers.pass_header

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

Запрещенные заголовки, которые необходимо пропустить от upstream к клиенту

Последовательность строковых значений

—

modifiers.proxy_redirect

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

Текст, который нужно изменить в полях заголовка Location и Refresh в ответе проксируемого сервера. Доступно, если http_version < 2.0

Последовательность строковых значений

—

modifiers.sub_filter

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

Замена одной строки на другую в ответе

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

—

modifiers.sub_filter.replace

Обязательный (в рамках sub_filter)

Последовательность замен

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

—

modifiers.sub_filter.replace.from

Обязательный (в рамках replace)

Заменяемый текст

Строковое значение

—

modifiers.sub_filter.replace.to

Обязательный (в рамках replace)

Текст замены

Строковое значение

—

modifiers.sub_filter.once

Опциональный (в рамках sub_filter)

Сколько раз нужно искать каждую из заменяемых строк: один раз или многократно

on, off

—

modifiers.sub_filter.last_modified

Опциональный (в рамках sub_filter)

Сохранить поле заголовка last-modified исходного ответа во время замены для лучшего кэширования ответов

on, off

—

modifiers.subs_filter

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

Замена одной строки на другую в ответе, используя регулярные выражения. Более универсальная по сравнению с sub_filter

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

—

modifiers.subs_filter.replace

Обязательный (в рамках subs_filter)

Последовательность замен

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

—

modifiers.subs_filter.replace.from

Обязательный (в рамках replace)

Заменяемый текст

Строковое значение

—

modifiers.subs_filter.replace.to

Обязательный (в рамках replace)

Текст замены

Строковое значение

—

modifiers.subs_filter.replace.flags

Опциональный (в рамках replace)

Флаги замены. Значение должно быть уникальным

i — сопоставление без учета регистра; g — замена всех строк соответствия; o — замена по первому соответствию; r — шаблон обрабатывается как регулярное выражение

r

modifiers.subs_filter.mime_types

Опциональный (в рамках subs_filter)

Типы данных MIME

Строковое значение

*

modifiers.cors

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

Обработка CORS запросов

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

—

modifiers.cors.origin_wl

Обязательный (в рамках cors)

Белый список для заголовка Origin. Есть возможность использовать регулярное выражение

Строковое значение

—

modifiers.cors.method_wl

Обязательный (в рамках cors)

Белый список для метода запроса. Значение используется в запросе для предварительной проверки

get, head, post, put, connect, options, trace, patch, delete

—

modifiers.cors.origin_wl_type

Опциональный (в рамках cors)

Тип для директивы origin_wl

re — белый список со значениями регулярных выражений; recl — белый список со значениями регулярных выражений без регистра

Полное совпадение

modifiers.cors.origin_allow_null_wl

Опциональный (в рамках cors)

Белый список со всеми допустимыми хостами, для которых разрешен «Origin: null» в запросе

Строковое значение

—

modifiers.cors.origin_allow_null_wl_type

Опциональный (в рамках cors)

Тип для директивы origin_allow_null_wl

re — белый список со значениями регулярных выражений; recl — белый список со значениями регулярных выражений без регистра

Полное совпадение

modifiers.cors.deny_status

Опциональный (в рамках cors)

Статус отказа при сбое проверки cors

Текстовое значение. Диапазон от 400 до 599

403

modifiers.set_output_headers

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

Установка заголовков в ответе клиенту с указанием условий их выставления

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

—

modifiers.set_output_headers.headers

Обязательный (в рамках set_output_headers)

Строка заголовка

Последовательность строковых значений

—

modifiers.set_output_headers.status_codes

Опциональный (в рамках set_output_headers)

Критерий для кода состояния

Последовательность текстовых значений. Диапазон от 100 до 599

—

modifiers.set_output_headers.content_types

Опциональный (в рамках set_output_headers)

Критерий для типа содержимого в заголовках ответов

Последовательность строковых значений

—

modifiers.set_output_headers.conditions

Опциональный (в рамках set_output_headers)

Файл условий для заголовков. Есть возможность использовать регулярное выражение

Строковое значение

—

modifiers.set_output_headers.conditions_reverse

Опциональный (если conditions is not None)

Инвертирование результата выполнения условий

true, false

—

modifiers.set_output_headers.set_var

Опциональный (в рамках set_output_headers)

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

Строковое значение

—

modifiers.set_output_headers.value_regex

Опциональный (в рамках set_output_headers)

Обновляет существующий заголовок, если его текущее значение соответствует указанному регулярному выражению

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

—

modifiers.set_input_headers

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

Установка заголовков в запросе на upstream с указанием условий их выставления

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

—

modifiers.set_input_headers.headers

Обязательный (в рамках set_input_headers)

Строка заголовка

Последовательность строковых значений

—

modifiers.set_input_headers.content_types

Опциональный (в рамках set_input_headers)

Критерий для типа содержимого в заголовках ответов

Последовательность строковых значений

—

modifiers.set_input_headers.conditions

Опциональный (в рамках set_input_headers)

Файл условий для заголовков. Есть возможность использовать регулярное выражение

Строковое значение

—

modifiers.set_input_headers.conditions_reverse

Опциональный (если conditions is not None)

Инвертирование результата выполнения условий

true, false

—

modifiers.set_input_headers.set_var

Опциональный (в рамках set_input_headers)

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

Строковое значение

—

Пример:

modifiers:
  set_input_headers:
    - headers:
      - "X-Foo: "  # обнуление заголовка X-Foo