我根据此指南在本地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
现在,我可以在以下位置访问统计信息页面:
答案 0 :(得分:1)
您应该使用容器的IP地址替换localhost,因为haproxy在docker容器内而不是直接在计算机上运行。或者,您可以将Docker容器内的8443端口映射到Linux机器上的完全相同的端口。然后,您可以使用http://localhost:8443
在浏览器中对其进行访问