У меня был некоторый начальный успех с HAProxy, настроившим группу серверов приложений, слушающих через различные другие порты.
Теперь у меня есть другой веб-сервер, прослушивающий один порт, и я хотел бы узнать, какие изменения нужно внести в мою конфигурацию, чтобы также передавать трафик по имени хоста.
Ниже приведена текущая настройка, при условии:
- мой веб-сервер apache работает на examplecom: 8001
- моя группа серверов приложений 0.0.0.0:8081, 0.0.0.0:8082, 0.0.0.0:8083
global log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 4096 debug #quiet #user haproxy #group haproxy defaults log global mode http option httplog option dontlognull retries 3 redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen appservers 0.0.0.0:80 mode http balance roundrobin option httpclose option forwardfor #option httpchk HEAD /check.txt HTTP/1.0 server inst1 0.0.0.0:8081 cookie server01 check inter 2000 fall 3 server inst2 0.0.0.0:8082 cookie server02 check inter 2000 fall 3 server inst3 0.0.0.0:8083 cookie server01 check inter 2000 fall 3 server inst4 0.0.0.0:8084 cookie server02 check inter 2000 fall 3 capture cookie vgnvisitor= len 32
(любые другие комментарии по настройке ^ приветствуются.)
Теперь я хотел бы продолжить то же самое выше, но дополнительно в случае - если имя хоста - myspecialtopleveldomain <dot> com, то хотел бы передать трафик к примеру <dot> com: 8001
~ B
2
Можно отправлять запросы на разные серверы на основе имени хоста с помощью конфигурации внешнего интерфейса и внутреннего интерфейса. Ваш вопрос немного сбивает с толку, вы упомянули example.com:8001, но его нигде нет в конфигурации. Это место назначения для запросов к myspecialtopleveldomain.com через порт 80? Возможно, вы можете дать несколько примеров URL-адресов, которые пользователи будут вводить и куда вы хотите, чтобы эти URL-адреса были отправлены haproxy.
—
ThatGraemeGuy