gpt4 book ai didi

docker - 通过 websockets 将 traefik 用于 docker 内部流量

转载 作者:行者123 更新时间:2023-12-04 15:16:58 25 4
gpt4 key购买 nike

我在 swarm 模式下使用 docker 为我的应用程序中的服务和 traefik 处理流量。我的目标是为我的应用程序的每个 API 部分创建一个单独的服务(例如,对 domain.com/api/foo_api 的请求转到 foo_api 服务,对 domain.com/api/bar_api 的请求转到 bar_api 服务。

现在这一切在 traefik 中变得非常简单。但是,我还将 API 服务与其他与 API 无关的内部服务一起使用。他们使用 websocket 连接到内部 docker URL,所以目前它是 ws://api:api_port/ws .但是,如果我拆分 API 部分,我将需要类似 ws://foo_api:foo_api_port/ws 的内容。这显然使服务只能访问 foo_api ,不是所有其他的。

所以我的问题是:我可以使用 traefik 路由这个 websocket 流量,类似于我在外部如何做,但在 docker net 内部吗?

最佳答案

Traefik 是一个南北向的反向代理。过去在传统基础设施中的大多数人会使用 NGINX 或 Apache 来解决入站问题——很高兴看到您使用更现代的工具。您所描述的是 traefik 后面防火墙内的东西向通信模式(假设您通过 traefik 控制所有入口)。

您是否考虑过将服务发现和注册功能与 Hashicorp Consul 之类的工具一起使用 - https://consul.io ?

服务发现的想法是,您可以通过注册中心发现和提供集群内的容器/服务,并通过名称相互接近引用,而无需手动构建和维护复杂的名称 IP 查找的痛苦.大多数人在历史上在需要外部查询的 DNS SRV 背后的更持久模型中理解这一点。 Consul 仍然可以支持遗留引用集成。

该站点可能会帮助您:https://attx-project.github.io/Consul-for-Service-Discovery-on-Docker-Swarm.html

他们似乎解决了与您类似的案例。通过一些调整,这项工作很可能可以重复使用。

关于docker - 通过 websockets 将 traefik 用于 docker 内部流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59788150/

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