Назад | Перейти на главную страницу

Заголовок сквозного сервера NGINX

Как мне заставить NGINX проходить через заголовок server вышестоящих серверов?

Например, если NGINX проксирует сервер Apache с заголовком сервера Apache2.2 (CentOS), он удаляет его и заменяет на NGINX / 1.0.1. У нас есть идентификаторы нашей машины в заголовках Server:, поэтому нам нужно, чтобы NGINX не перезаписывал их.

Директива proxy_pass_header делает именно то, что вы хотите:

proxy_pass_header Server;

В Nginx нет возможности отключить заголовок сервера, ближайший вариант - это директива токена сервера но это отключает только номер версии.

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

Я лично рекомендую отправлять идентификатор машины в специально разработанном для него заголовке (X-WHATEVER), поскольку использование определенного RFC-заголовка для поведения, отличного от того, для чего он предназначен, в конечном итоге обязательно вас укусит.

Если proxy_pass_header не работает, то я уверен, что единственной альтернативой является исправление исходного кода Nginx, чтобы не перезаписывать его.

Любые заголовки из исходного ответа могут быть сохранены с использованием переменных $ upstream_http_ * для вашего случая:

add_header Сервер $ upstream_http_server;