Я использую haproxy с stunnel, обрабатывающим SSL (и использую режим прокси для сохранения исходного IP-адреса от haproxy).
У меня есть несколько тестов acl, которые перенаправляют на разные серверные части в зависимости от домена, заголовков или пути.
Проблема в том, что они идентичны вне зависимости от того, заходите вы через http или https, но я должен продублировать их в конфигурации. Есть ли способ уменьшить дублирование?
Вот пример конфигурации:
global
user haproxy
group haproxy
#etc...
frontend http-in
bind *:80
acl files_path path_beg /files/
acl beta_host hdr_beg(host) -i beta.
use_backend files if files_path
use backend beta_host
default_backend appservers
frontend https-in
bind *:442 accept-proxy
acl files_path path_beg /files/
acl beta_host hdr_beg(host) -i beta.
use_backend files if files_path
use backend beta_host
default_backend appservers
backend appservers
balance roundrobin
option forwardfor
server appserver_1 localhost:8080 weight 1
server appserver_2 192.168.1.101:8080 weight 1
backend files
balance roundrobin
option forwardfor
server file1 192.168.1.102 weight 1
server file2 192.168.1.103 weight 1
backend beta
balance roundrobin
server beta1 192.168.1.104 weight 1
Http-in и https-in имеют разные порты, а https-in должен разделять accept-proxy, чтобы stunnel мог использовать протокол прокси для передачи ему исходного IP-адреса пользователя. Но в остальном они идентичны и всегда должны быть идентичными. Есть ли способ уменьшить это дублирование? (haproxy 1.5-dev)