如何在 HAPROXY 中将客户端 IP 转发到后端服务器

如何在 HAPROXY 中将客户端 IP 转发到后端服务器

我有两个后端服务器,我必须监控客户端 IP,默认情况下 HAProxy 发送的是服务器 IP 而不是客户端 IP。我找到了类似的解决方案这里但它不适用于我的情况。我的简单配置文件如下

这是我的 haproxy.cnf

global
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000
frontend  main *:9090
    acl url_static       path_beg       -i /static /javascript /stylesheets
    acl url_static       path_end       -i .jpg .gif .png .css 

#Rule for plays request
   acl p2_url path_beg     -i /plays
   use_backend back2          if p2_url

    acl valid_path  path_beg -i /solr/select
    use_backend back1       if valid_path

   use_backend static          if url_static
   default_backend             static

backend static
    balance     roundrobin
    server      static 127.0.0.1:80 check


backend back1
    balance     roundrobin
    server  app40 127.0.0.1:8900 check
backend back2
    balance     roundrobin
    server  app31 10.11.21.31:80 check

我希望在使用 back2 时发送客户端 IP(至少)。如何更新 haproxy 配置。我使用的是 Centos 7 和 HAProxy 1.5.14

答案1

我现在明白了,您实际上想知道后端服务器如何从日志中读取 x-forwarded-for 标头?

尝试以下说明Windows IIS XFF或者Apache XFF

相关内容