Настроить правило TCP ⟶ Proxy
Чтобы видеть реальные IP-адреса клиентов, которые обращаются к балансировщику нагрузки, можно создать правило TCP ⟶ Proxy и использовать Proxy Protocol. Информация о клиентах добавится в заголовок соединения.
-
Создайте балансировщик нагрузки с правилами:
- для HTTP. Укажите для балансировщика нагрузки: протокол — TCP, порт — 80; для серверов: протокол — PROXY, порт — 80;
- для HTTPS. Укажите для балансировщика нагрузки: протокол — TCP, порт — 443; для серверов: протокол — PROXY, порт — 443.
Если вам не требуется балансировка HTTP или HTTPS — можно не настраивать какое-либо из этих правил в зависимости от решаемых задач.
-
Включите поддержку директивы
proxy_protocol
в конфигурационном файле nginx.conf на серверах, подробнее в официальной документации nginx.Пример nginx.conf:
server { server_name localhost; # Работа с директивой proxy_protocol возможна только в связке с HAProxy. # Для прямого доступа директиву нужно отключить. listen 443 ssl default_server proxy_protocol; ssl_certificate /etc/nginx/ssl/public.example.com.pem; ssl_certificate_key /etc/nginx/ssl/public.example.com.key; # Адрес HAProxy — мы рекомендуем указывать CIDR set_real_ip_from 192.168.1.0/24; real_ip_header proxy_protocol; root /usr/share/nginx/html; index index.html index.htm; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ /\.ht { deny all; } }
Использование LVS и метода Direct Server Return не поддерживается согласно политике безопасности Облачной платформы.