Из этой конфигурации вы, похоже, выполняете SNI-sniffing, но все бэкенды возвращаются к самому HAProxy ... это не тот случай, когда требуется SNI-sniffing. Возможно, я упускаю из виду что-то еще, что потребует этого.
Должно быть понятно, почему вы получаете IP-адрес прокси в X-Forwarded-For
- HAProxy разговаривает сам с собой. Первый проход через прокси - это клиентское соединение, поскольку прокси-сервер может определить на втором проходе, потому что только второй проход говорит HTTP. Он видит только, что входящее соединение TCP прибыло ... из самого себя.
Решение для бэкэнда первого прохода для передачи исходной информации клиента с использованием протокола прокси-протокола и интерфейса второго прохода для его декодирования.
Добавить accept-proxy
в bind
линии для второго прохода-интерфейсов, а также добавить send-proxy
к server
линии на первый проход бэкэндах. Таким образом, в соединении, где HAProxy разговаривает сам с собой, бэкэнд первого прохода отправит преамбулу протокола Proxy, а интерфейс второго прохода будет декодировать входящее значение и поместить его в X-Forwarded-For
.