Переадресация протоколов NGinx и Proxy
Я пытаюсь создать конфигурацию NGinx, в которой NGinx получает заголовок протокола прокси на входящем соединении и передает его на исходящем соединении. Существенно для распространения реального IP-адреса до конечной цели. Я использую следующую конфигурацию:
stream {
upstream some_backend {
server some_host:8090;
}
server {
listen 8090 proxy_protocol;
proxy_pass some_backend;
proxy_protocol on;
}
}
Однако заголовок протокола прокси-сервера, который я получаю на some_backend, содержит IP-адрес NGinx, а не IP-адрес источника.
Что-то не так с используемой конфигурацией? Можно ли вообще это сделать?
1 ответ
Ой, я сделал это снова... Кажется, что отсутствующая часть добавляет директиву set_real_ip_from с диапазоном ip, который вы используете для доступа к NGinx
http://nginx.org/en/docs/stream/ngx_stream_realip_module.html
stream {
upstream some_backend {
server some_host:8090;
}
server {
listen 8090 proxy_protocol;
proxy_pass some_backend;
proxy_protocol on;
set_real_ip_from 172.17.0.0/24;
}
}