Работа с заголовками в Nginx

Содержание

Введение

В данной статье рассматриваются способы получения (чтения) и изменения (записи) заголовков в Nginx.

Используемые термины

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

  • upstream сервер — это сервер, который получает запросы и отправляет ответы;
  • downstream сервер — это сервер, который отправляет запросы и получает ответы.

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

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

Откуда Куда Тип Чтение (переменная) Запись (директива)
Клиент Nginx Запрос $http_<header_name>
Nginx Сервер Запрос proxy_set_header
Сервер Nginx Ответ $upstream_http_<header_name>
Nginx Клиент Ответ $sent_http_<header_name> add_header

Для простоты восприятия данную таблицу можно представить в виде диаграммы ниже.

  sequenceDiagram
    participant Клиент
    participant Nginx
    participant Сервер
    Клиент->>Nginx: чтение: $http_<header_name>
    Nginx->>Сервер: запись: proxy_set_header
    Сервер->>Nginx: чтение: $upstream_http_<header_name>
    Nginx->>Клиент: чтение: $sent_http_<header_name> <br/> запись: add_header

Источники