我正在使用haproxy和stunnel处理SSL(并使用代理模式来保留haproxy的原始IP)。
我有几个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必须sepcify accept-proxy,以便stunnel可以使用代理协议将其传递给用户的原始IP。但除此之外,它们是相同的,并且应该始终相同。有没有办法减少这种重复? (haproxy 1.5-dev)
答案 0 :(得分:3)
你可以简单地将前端的一个http绑定到两个。
frontend http-in
bind *:80
bind 0.0.0.0:443 transparent
答案 1 :(得分:0)
不幸的是,haproxy手册(http://haproxy.1wt.eu/download/1.5/doc/configuration.txt)保留了acl只能在前端,监听和后端部分定义。
如果https和http前端相同,则可以在一个前端定义几个绑定句子。