![Haproxy 统计页面在 TCP 模式下不起作用](https://linux22.com/image/783884/Haproxy%20%E7%BB%9F%E8%AE%A1%E9%A1%B5%E9%9D%A2%E5%9C%A8%20TCP%20%E6%A8%A1%E5%BC%8F%E4%B8%8B%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
Haproxy 专家,
我无法让 haproxy 统计页面与后端的 TCP 模式一起工作。
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
defaults
mode tcp
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
stats enable
stats hide-version
stats refresh 30s
stats show-node
stats auth admin:xxxxxxxxxxxxxxxxx
stats uri /haproxy?stats
frontend main
listen stats
bind *:5000
mode tcp
default_backend app
backend app
balance roundrobin
#backends
server server1 xxx.xxx.xxx.xxx:10222 check
server server2 xxx.xxx.xxx.xxx:34013 check
答案1
HAproxy 需要 HTTP 模式监听器来监听统计页面,仅此而已。如果您需要统计信息,则需要拥有或创建一个。
listen
如果您没有任何 HTTP 后端或者您希望统计信息页面不绑定到任何现有的 HTTP 侦听器,则可以使用没有任何实际后端的简单部分来实现。
从默认值中删除所有与统计相关的行,并listen
为统计创建一个单独的部分,将所有这些行放在其中:
listen stats
mode http
bind *:8080
stats enable
stats hide-version
stats refresh 30s
stats show-node
stats auth admin:xxxxxxxxxxxxxxxxx
stats uri /haproxy?stats
还要删除listen stats
紧跟在 之后的行frontend main
。它当前所做的是终止“前端”部分main
(恰好是空的并且只有默认值),创建新的“监听”部分stats
并将以下几行应用于它。我确信这不是您想要的。