Я пытаюсь перенаправить source / client_ip (% ci), который достигает haproxy, в приложение с помощью X_FORWARDED_FOR.
HA-Proxy версии 1.7.9 2017/08/18
global
log 127.0.0.1 local1 info
daemon
user vcap
group vcap
maxconn 64000
spread-checks 4
defaults
maxconn 64000
option http-server-close
option httplog
option forwardfor
frontend http-in
mode http
bind :80
log global
option forwardfor except 127.0.0.1
frontend https-in
mode http
log global
bind :443 ssl crt /data/haproxy/ssl/server.pem
option forwardfor except 127.0.0.1
use_backend https-backend
http-request set-header SSL_CLIENT_CERT_USER %{+Q}[ssl_c_s_dn(cn)]
http-request set-header SSL_CLIENT_CERT %{+Q}[ssl_c_der,base64]
http-request set-header SSL_CLIENT_CERT_USED %[ssl_c_used] if no_user_cert
backend https-backend
mode http
log global
balance roundrobin
option forwardfor header X-Client
* Приложение 1005 *Java выполняет следующие действия:
String ipAddress = request.getHeader("HTTP_X_FORWARDED_FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
Имея указанную выше конфигурацию, я получаю IP-адрес haproxy в журнале приложения, а не фактический IP-адрес источника.
Добавление набора- Заголовок во фронтенде или бэкэнде или с обеих сторон не помог: http-request set-header X-CLIENT-IP %[src]
.
Я делаю это неправильно?