Как перенаправить клиентский IP-адрес на бэкэнд-серверы в HAPROXY

У меня два внутренних сервера, мне нужно отслеживать 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

Я хочу отправлять клиентский IP-адрес, когда когда-либо используется back2 (по крайней мере). Как я могу обновить конфигурацию haproxy. Я использую Centos 7 с HAProxy 1.5. DRS и управление питанием включены в кластере

2
задан 27 October 2016 в 11:27
2 ответа

Включено ли в вашем кластере автоматическое размещение DRS? Если это так, возможно, DRS пытается перевести эту новую виртуальную машину на хост в ждущий режим. Если вы установите в конфигурации DRS, чтобы новые виртуальные машины не размещались автоматически, а затем выберите конкретный хост, это может сработать.

https://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware .vsphere.vm_admin.doc_50% 2FGUID-9062F225-E01B-42BA-8AFB-8EA4069068FE.html

1
ответ дан 3 December 2019 в 11:31

У вас должна быть возможность переключить DRS в ручной режим без фактического отключения или отмены конфигураций. Затем разверните свой новый сервер и переключите его обратно, когда закончите.

Ручной DRS только предлагает, куда должны идти виртуальные машины, но вам придется принять рекомендации.

Кроме того, какую версию vCenter вы используете? DRS должна распознать, когда сервер находится в режиме ожидания, и исключить его из рекомендаций, если у вас недостаточно свободных слотов. Но если у вас недостаточно слотов, он должен включить резервный сервер.

1
ответ дан 3 December 2019 в 11:31

Теги

Похожие вопросы