gpt4 book ai didi

linux - HAProxy 使用 Docker 进行简单转发

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:30 25 4
gpt4 key购买 nike

我正在尝试学习如何使用 HA 代理转发 http 流量。一开始我以为我会使用 Docker,但陷入了困境。

我尝试执行的转发流量如下所示

ha-proxy container port 81
>>> forward to
nginx container port 8088

当我从浏览器加载 ha 代理容器时,网址为 http://localhost:81/我收到的错误消息是

503 服务不可用 没有服务器可以处理此请求。

My setup looks like the following.

nginx - 容器

当我加载http://localhost:8088/时我得到了正确的 Welcome to nginx! 主页。

我使用的 Docker 命令是。我使用 --net=host 因此它将其绑定(bind)到主机网络。

docker run --name myapp-backend -p 8088:80 -d --net=host  nginx:1.15.0-alpine  

Ha代理

Dockerfile

FROM haproxy:alpine
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg

haproxy.cfg

global
log 127.0.0.1 local0
maxconn 4096

defaults
log global
mode http
option httplog
option dontlognull
retries 3
redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000

frontend http-in
bind *:81
acl myapp-frontend hdr(host) -i localhost
use_backend myapp-backend if myapp-frontend

backend myapp-backend
balance roundrobin
option http-server-close
server myapp-server-1 localhost:8088 check

启动 HA 代理

   docker build -t rob-haproxy .
docker run --name ha-proxy -p 81:81 --net=host -d rob-haproxy

我的想法是 ha 代理配置文件 haproxy.cfg 有问题。非常感谢任何建议。

最佳答案

您不能在 haproxy 配置文件中使用localhost。对于 haproxy,localhost 表示我的容器,而不是您的主机。使用 nginx 的 docker 服务或容器名称代替 localhost。当然,将两个容器放置在同一个 docker 网络中。

关于linux - HAProxy 使用 Docker 进行简单转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50862769/

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