在 docker 上本地 运行 HAProxy 问题
Issue with running HAProxy locally on docker
我在 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 发出邮递员 GET 并期望 HaProxy 重定向到本地端口 80 上我的服务器 "dummy"。但是我无法得到任何清晰的响应。感谢任何输入。
如果你 运行 容器像你一样,Docker 将在你的本地主机上分配一个随机端口并将流量路由到端口 3001。你可以通过 [=29 检查哪个端口=]ning 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 配置为绑定到端口 3000。您至少需要更改 docker run
命令到以下内容:
docker run -p3000 --name my-running-haproxy my-haproxy
但通常你希望在本地主机上有一个固定端口,例如端口 80。像这样启动你的容器来实现:
docker run -p 80:3000 --name my-running-haproxy my-haproxy
现在您可以在 localhost:80
访问您的应用程序。
我在 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 发出邮递员 GET 并期望 HaProxy 重定向到本地端口 80 上我的服务器 "dummy"。但是我无法得到任何清晰的响应。感谢任何输入。
如果你 运行 容器像你一样,Docker 将在你的本地主机上分配一个随机端口并将流量路由到端口 3001。你可以通过 [=29 检查哪个端口=]ning 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 配置为绑定到端口 3000。您至少需要更改 docker run
命令到以下内容:
docker run -p3000 --name my-running-haproxy my-haproxy
但通常你希望在本地主机上有一个固定端口,例如端口 80。像这样启动你的容器来实现:
docker run -p 80:3000 --name my-running-haproxy my-haproxy
现在您可以在 localhost:80
访问您的应用程序。