无法访问HAProxy统计信息页面

时间:2018-08-13 12:04:03

标签: docker haproxy

我根据此指南在本地ubuntu计算机上将HAproxy作为容器运行:

https://hub.docker.com/_/haproxy/

我现在正尝试通过以下方式访问浏览器中的stats页面:

http://localhost:8443/haproxy?stats

http://localhost/haproxy?stats

https://localhost:8443/haproxy?stats

但以上所有内容均提供:ERR_CONNECTION_REFUSED

在我的 haproxy.cfg 文件中,我有:

global
  maxconn 1000

  ca-base /var/lib/haproxy/certs
  crt-base /var/lib/haproxy/certs
  tune.ssl.default-dh-param 2048

defaults
  maxconn 1000
  timeout connect 130s
  timeout client 130s
  timeout client-fin 111s
  timeout server 130s
  timeout server-fin 111s
  timeout http-request 130s
  timeout http-keep-alive 300s

  # Long timeout for WebSocket connections.
  timeout tunnel 1h

  log     global 
  mode    http
  option forwardfor
  option http-server-close
  option  httplog

  stats enable
  stats uri /stats
  stats realm Haproxy\ Statistics
  stats auth user:password


frontend haproxy
  bind :8443 ssl crt frontend/server.pem  
  reqadd X-Forwarded-Proto:\ http
  default_backend myapp

backend myapp
  server myapp localhost:9000

另外,似乎还使用了以下网址:

backend myapp
  server myapp localhost:9000

确实没有效果。如果我更改为:

backend myapp
  server myapp 199.17.0.2:9000

我仍然可以在localhost:9000上访问 myapp 。那么在后端部分指定URL的目的是什么?

我通过以下方式运行 myapp

docker run -d --name myapp -p 9000:9000 -p 9092:9092 myapp

基于以下建议/答案,我运行 HAProxy

docker run -d --name my-running-haproxy -p 8443:8443 my-haproxy:1.7

现在,我可以在以下位置访问统计信息页面:

https://localhost:8443/stats

1 个答案:

答案 0 :(得分:1)

您应该使用容器的IP地址替换localhost,因为haproxy在docker容器内而不是直接在计算机上运行。或者,您可以将Docker容器内的8443端口映射到Linux机器上的完全相同的端口。然后,您可以使用http://localhost:8443

在浏览器中对其进行访问