2016-05-25 3 views
0

У меня есть сервер с несколькими IP настроенными на нем (как виртуальный IP на eth0). Я использую Haproxy для выравнивания нагрузки. Каждый IP-адрес был настроен/указал на другое имя домена, и все запросы, поступающие на каждый IP-адрес, перенаправляются на другой сервер с помощью haproxy.set frontend_ip как источник IP для backend

Проблема здесь, весь исходящий трафик от haproxy проходит через главный интерфейс IP [по умолчанию]. Я просто хотел установить исходный ip для подключения к серверу.

Я пробовал приведенную ниже конфигурацию, ее не работало. Есть идеи ?

backend web1 
     server ss2 10.11.12.13:80 source ${frontend_ip} 

frontend new1 
     bind 10.11.13.15:8080 
     mode tcp 
     use_backend web1 
+0

Опубликовать свой haproxy.log, когда вы говорите * он не работает *. –

+0

не уверен, что можно проверить у haproxy.log. Во всяком случае, это мой образец журнала "[5738] [1464157677.783] 0/0/0/0/0/0/0/1/0 // 20664 ---- 10.11.13.155:58246 10.11.13.15:8080 10.11.12.13 : 80 new1 - - 0 web1: ss2 "" "" "" "" req_size = 0 resp_size = 0 " – KMG

ответ

1

У вас только 1 IP-адрес в вашем вопросе, поэтому я не могу сказать точно. Но если у вас есть несколько виртуальных IP-адресов и вы хотите обслуживать разные бэкэнд, вам нужно создать по крайней мере один frontend. Как это:

frontend new1 
    bind 10.11.13.15:80 
    ... 
    acl is_new1domain hdr(host) -i new1.domain.com 
    use_backend web1 if is_new1domain 

frontend new2 
    bind 10.11.13.16:80 
    ... 
    acl is_new2domain hdr(host) -i new2.domain.com 
    use_backend web2 if is_new2domain 

backend web1 
    ... 
    source 10.124.13.15 

backend web2 
    ... 
    source 10.124.13.16 

На самом деле, если у вас нет каких-либо других правил синтаксического, просто использовать LAYER4 для прокси/баланса. Например:

listen new1 
    bind 10.11.12.15:80 
    server ss1 10.11.12.90:8080 check 
    server ss2 10.11.12.91:8080 check 
    server ss3 10.11.12.92:8080 check 
    source 10.124.12.15 

listen new2 
    bind 10.11.12.16:80 
    server ss4 10.11.12.80:8080 check 
    server ss5 10.11.12.81:8080 check 
    server ss6 10.11.12.82:8080 check 
    source 10.124.12.16 
Смежные вопросы