gpt4 book ai didi

tomcat - 使用 Docker 和 haproxy 将请求负载均衡到嵌入式 tomcat 的多个实例

转载 作者:行者123 更新时间:2023-11-28 21:55:47 26 4
gpt4 key购买 nike

我正在尝试使用 Docker 和 haproxy 来对许多嵌入式 tomcat 进行负载平衡/循环请求。

我目前的配置如下:

来自 docker-compose.yml:

loadbalancer:
image: haproxy
links:
- web
ports:
- "8080:8080"
web:
build: ./web

来自./web/Dockerfile:

FROM java:8
ADD ./bignibou-server-1.0.jar /app/bignibou-server-1.0.jar
ADD ./spring-cloud.properties /app/spring-cloud.properties
ENV SPRING_CLOUD_PROPERTIESFILE=/app/spring-cloud.properties
ENV SPRING_PROFILES_ACTIVE=cloud
ENV SPRING_CLOUD_APP_NAME=bignibou
ENV CLEARDB_DATABASE_URL=mysql://root:root@192.168.1.12:3306/bignibou_dev
ENV REDISCLOUD_URL=redis://dummy:dummy@192.168.1.12:6379
ENV DYNO=dummy
EXPOSE 8080
ENTRYPOINT [ "java", "-jar", "/app/bignibou-server-1.0.jar" ]

当我执行 docker-compose scale web=2 然后执行 docker-compose up 时,我看到两个 tomcat 都启动了,但是我无法通过浏览器访问它们...

任何人都可以建议如何访问我的负载平衡应用程序吗?我试过:

  • 172.17.42.1:8080
  • 172.17.42.1:80

无济于事(其中 172.17.42.1 是我的 docker ip)。

我需要进一步配置haproxy吗?

最佳答案

您需要配置 HAProxy,提供有关后端服务器的信息和要使用的负载平衡算法。仅使用 haproxy 镜像启动容器是不够的。

您需要一个 Dockerfile 来使用 haproxy 镜像并将特定的 haproxy 配置文件复制到该镜像:可以引用haproxy官方镜像页面中的说明: https://registry.hub.docker.com/_/haproxy/

如何使用 HAProxy 设置负载平衡:https://serversforhackers.com/load-balancing-with-haproxy

我用 Nginx、Node 和 Redis 写了一篇关于示例 docker worflow 的博客。它描述了如何使用 nginx 对节点服务器进行负载平衡: http://anandmanisankar.com/posts/docker-container-nginx-node-redis-example/

从概念上讲,它与平衡 tomcat 服务器的 HAProxy 相同。但配置结构会有所不同。希望这是有用的。

关于tomcat - 使用 Docker 和 haproxy 将请求负载均衡到嵌入式 tomcat 的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29414784/

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