У меня есть HTTP-ферма со следующей конфигурацией:
listen webfarm 10.254.23.225:80
mode http
balance roundrobin
cookie SERVERID insert
option httpclose
option forwardfor
option httpchk HEAD /check.txt HTTP/1.0
server webA 10.254.23.4:80 cookie A check
server webB 10.248.23.128:80 cookie B check
Я хотел бы добавить некоторую опцию, которая перенаправляла бы все запросы для определенного URI (т.е. / специального) на третий веб-сервер. как мне это сделать?
Вот сообщение в блоге, которое я написал о балансировке нагрузки на основе заголовков хоста:
Если вы хотите сопоставить URI или каталог, я бы предложил использовать path_beg вместо hdr_end, который используется в примере, приведенном на этой странице. Ниже приведен пример того, как вы можете сделать это в своей конфигурации:
frontend http-in
bind 10.254.23.225:80
acl has_special_uri path_beg /special
use_backend special_server if has_special_uri
default_backend webfarm
backend webfarm
balance roundrobin
cookie SERVERID insert
option httpchk HEAD /check.txt HTTP/1.0
option httpclose
option forwardfor
server webA 10.254.23.4:80 cookie webA check
server webB 10.248.23.128:80 cookie webB check
backend special_server
balance roundrobin
cookie SERVERID insert
option httpchk HEAD /check.txt HTTP/1.0
option httpclose
option forwardfor
server webC 10.0.0.1:80 cookie webC check
Надеюсь, это поможет!