В экземплярах HAProxy, работающих на K8S, мне нужно вручную заблокировать определенные IP-адреса на HAProxy. В настоящее время я уже не могу их зарегистрировать. Согласно документам AWS, балансировщики нагрузки устанавливают X-переадресовано-для
заголовок запроса и заполните IP-адрес клиента.
При попытке зарегистрировать этот заголовок (и, следовательно, IP-адрес клиента), я всегда получаю пустые строки с HAProxy версии 2.0.18 и 2.2.20. Итак, я думаю, я неправильно настроил HAProxy. Мой конфиг выглядит так:
Глобальный
демон
максконн 256
формат лога stdout raw local0
значения по умолчанию
режим http
опция httplog
опция
тайм-аут подключения 15000 мс
таймаут клиента 150000мс
таймаут сервера 150000мс
список пользователей global_auth
пользователь someuser небезопасный пароль somepass
интерфейс http-in
привязать *:80
привязка *: 443 ssl crt /etc/certs/myapp-de.pem/cert_bundle_key.pem alpn h2, http/1.1
опция httplog
опция
захват заголовка запроса X-Forwarded-For len 500
захват заголовка запроса x-forwarded-for len 500
log-format "Заголовки = --%hr--, --%hrl-- | Заголовки2: --%[capture.req.hdr(0)]--, --%[capture.req.hdr(1) ]--"
журнал глобальный
acl host_ssl_exception hdr(host) -i jobs.myapp.com
схема перенаправления https код 301 если !{ ssl_fc } !host_ssl_exception
метод acl is_post POST|ОПЦИИ
acl метод is_get GET
default_backend myapp-web
серверная часть myapp-web
режим http
алгоритм сжатия gzip
тип сжатия текст/текст html/обычный текст/приложение css/приложение javascript/json
server web1 myapp-web.myapp-${TRACK}.svc.cluster.local:80 maxconn 32 проверка файлов cookie
Все, кроме одного, удалены. HTTPS и HTTP2 включены. захватить
кажется, терпит неудачу, но в настоящее время я не понимаю, почему.