gpt4 book ai didi

docker - 在 docker 上本地运行 HAProxy 的问题

转载 作者:行者123 更新时间:2023-12-02 21:01:44 24 4
gpt4 key购买 nike

我有一个在 Docker 端口 3001 上本地运行 HAProxy 2.0 版的容器。
配置文件是:

global  
debug

defaults
log global
mode http
timeout connect 50000
timeout client 50000
timeout server 50000

frontend main
bind *:3000
default_backend app

backend app
balance leastconn
mode http
server dummy <localhostIP>:80

Docker文件是:
FROM haproxy:2.0
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg

Docker 运行命令:
docker run -p3001 --name my-running-haproxy my-haproxy

我正在向端口 3000 发出 postman GET 并期望 HaProxy 重定向到本地端口 80 上的“虚拟”服务器。但我无法得到任何清晰的响应。感谢任何输入。

最佳答案

如果您像以前一样运行容器,Docker 将在您的本地主机上分配一个随机端口并将流量路由到端口 3001。您可以通过运行 docker ps 检查哪个端口在您启动容器并查看 PORTS 之后部分:

CONTAINER ID        IMAGE               COMMAND                   CREATED           STATUS              PORTS                      NAMES
6b502af649be my-haproxy "/docker-entrypoint.…" 1 minute ago Up 47 minutes 0.0.0.0:32769->3001/tcp upbeat_shtern

因此,在我的示例中,您可以在端口 32769 上访问您的应用程序,但这个数字是随机的。

请记住,在您的示例中,Docker 将流量路由到端口 3001,而您将 HAProxy 配置为绑定(bind)到端口 3000。您至少需要更改 docker run命令如下:
docker run -p3000 --name my-running-haproxy my-haproxy

但通常您希望在 localhost 上有一个固定端口,例如端口 80。像这样启动你的容器来实现:
docker run -p 80:3000 --name my-running-haproxy my-haproxy

现在您可以通过 localhost:80 访问您的应用程序.

关于docker - 在 docker 上本地运行 HAProxy 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60172131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com