У меня есть контейнер nginx, работающий как служба в Docker Swarm внутри созданной пользователем сети наложения. Оба созданы с:«Настоящий» IP-адрес клиента в Docker Swarm 1.12 при доступе к службе
docker network create --driver overlay proxy
docker service create --name proxy --network proxy -p 80:80 nginx
При доступе Nginx сайт через браузер, в Nginx доступа журнала удаленного адреса записывается как 10.255 ... отформатированный адрес, что я полагаю, что балансир адрес Swarm нагрузки. Вопрос заключается в том, как узнать/зарегистрировать адрес конечного клиента, обращающегося к сайту, а не адрес балансировки нагрузки.
Я хотел отметить, что использование этого в производственной среде представляет собой риск безопасности, особенно если ваше приложение использует эти значения для проверки клиента. Заголовки X-Real-IP и X-Forwarded могут быть легко подделаны, и на них нельзя положиться. – tkeeler
@tkeeler с haproxy вы можете отключить переменные в HTTP-запросе и заданное реальное значение в ответе – c4f4t0r
@ c4f4t0r - Только если вы ограничите все HTTP-запросы haproxy. В противном случае кто-то может сделать запрос непосредственно на сервер в обход вашего haproxy rewrite. – tkeeler