我有这个 HAProxy 配置,正如你所见,我在backend
s 中有很多重复的内容。有没有办法消除诸如 这样的重复内容stats
?
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
daemon
maxconn 2000
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
acl url_a path_reg ^\/a$|\/a\/
use_backend webservers_a if url_a
acl url_b path_reg ^\/b$|\/b\/
use_backend webservers_b if url_b
default_backend webservers_main
backend webservers_main
mode http
stats enable
stats auth admin:admin
stats uri /haproxy?stats
balance roundrobin
option httpchk
option forwardfor
option http-server-close
server web1 192.168.50.21:80 maxconn 32 check
backend webservers_a
mode http
stats enable
stats auth admin:admin
stats uri /haproxy?stats
balance roundrobin
option httpchk
option forwardfor
option http-server-close
server web2 192.168.50.22:80 maxconn 32 check
backend webservers_b
mode http
stats enable
stats auth admin:admin
stats uri /haproxy?stats
balance roundrobin
option httpchk
option forwardfor
option http-server-close
server web3 192.168.50.23:80 maxconn 32 check
答案1
您可以在配置中添加类似以下内容:
listen stats
bind ${PRIVATE_IP}:${PORT}
stats enable
stats uri /stats
stats auth admin:admin
我假设以下几点:
您不想让
stats
公众知道您的信息。如果不想,只需将您的统计数据移至现有frontend
指令中即可。${PRIVATE_IP}
用您机器上可用的私有 IP(或为此设置一个)和未使用的端口替换${PORT}
,例如8080
。警告:如果您使用的端口与
80
stats 指令中的不同,则必须stats
通过在 中指定端口来调用页面url
。为了防止和避免这种情况:- 将您的 绑定
frontend
到${PUBLIC_IP}:80
,并将您的listen stats
部分绑定到${PRIVATE_IP}:80
。
- 将您的 绑定