traefik - Docker 提供程序和 url 上的服务器之间的 Traefik 负载平衡
问题描述
我目前有一个 Traefik 设置,其中一个 nodejs 服务在 docker 容器中本地运行,其中包含 docker-compose.yml 文件,如下所示:
container_name: nestjs-server
build:
context: ./
dockerfile: Dockerfile
networks:
- traefik-global-proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.nestjs-server.rule=Host(`mydomain.com`) || Host(`www.mydomain.com`)"
- "traefik.http.routers.nestjs-server.entrypoints=websecure"
- "traefik.http.routers.nestjs-server.tls.certresolver=letsencrypt"
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
我在 1vCPU / 2GB 云实例上运行。现在我想在另一个 VM 上添加第二个节点应用程序实例。我已经看到可以像这样将服务器实例添加到负载均衡器:
services:
my-service:
loadBalancer:
servers:
- url: "http://<private-ip-server-1>:<private-port-server-1>/"
- url: "http://<private-ip-server-2>:<private-port-server-2>/"
但我不确定如何在本地 docker 实例旁边的另一个服务上的实例之间进行负载平衡。我已经读到不可能将基于标签的配置与文件配置混合在一起,所以我认为我需要执行以下操作:
my-service:
loadBalancer:
servers:
- url: "http://<private-ip-server-1>:<private-port-server-1>/"
- port: "<local-port-server-2>"
这可能吗?除了让所有东西都在 docker 中的同一台机器上运行之外,实现此目的的正确方法是什么?
解决方案
推荐阅读
- node.js - 沿 node-express 应用程序传递和更新数据
- python - 更改 django-rest-auth 中的错误消息
- ios - 如何在 secondViewController 上保留标签结果?
- python - 根据类的属性对 python 列表的部分进行排序
- python - 数据框中返回的函数的Python结果不正确
- dart - 如何从 Streambuilder 快照中解析对象
- jquery - 使用 Play 框架处理文件
- php - 从 facebook 社交名流成功回调后,我被重定向到登录页面
- datatable - 如何在数据表中的显示条目和搜索框之间放置两个日期选择器
- c# - 如何在写入同一流时流式传输 HTTP 响应?