docker - Traefik:应用程序之间的 HTTPS 访问不起作用

标签 docker traefik

在我们的设置中,我们使用最新的 traefik 作为反向代理,它具有到演示汇合和 keycloak 服务器的路由。

         traefik 
         |     |
confluence     keycloak

每个应用程序都有自己的 docker-compose 文件并单独启动。

Traefik 定义了一个虚拟网络,confluence 和 keycloak 也在这个网络中。通过正确的 DNS 设置,用户可以访问 traefik、confluence 和 keycloak。它按预期工作。

要使用 keycloak web SSO 系统,confluence 系统必须能够访问 keycloak,反之亦然,使用 FQDN 和使用 traefik 的 HTTPS。这不起作用。

可以直接连接到服务(我们假设这是由于共享网络),但是如果我们连接到 keycloak 容器并执行类似的操作
curl -k https://confluence.our.domain -v

我们可以看到与 docker-host 的连接已完成(IP 匹配),但 traefik 似乎没有进行任何路由。

如果我们连接到 keycloak 容器并执行
curl -k -v -H 'Host: confluence.our.domain' https://traefik

路由完成。

任何建议,我们做错了什么或我们应该检查什么?

任何帮助表示赞赏,
克里斯托夫

最佳答案

对于适用于所有与 traefik 通信的容器的基于 DNS 的配置,请在 compose.yml 文件中使用以下网络“别名”部分:

version: '3.3'

networks:
  proxy:
    external:
      name: proxy

services:
  traefik:
    image: traefik:1.4
    networks:
    - proxy:
        aliases:
        - confluence.our.domain

别名可以是一个列表,并将应用于上例中“代理”网络上的所有内容的 DNS。

关于docker - Traefik:应用程序之间的 HTTPS 访问不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46446541/

相关文章:

mysql - 有时在Docker中导入数据Mysql很慢

python - 从子进程调用的 bash 脚本的返回代码

docker - traefik docker 标签中基于主机和路径的路由规则的混合

kubernetes - Kubernetes 上的 Traefik v2.0 自签名证书

docker - Traefik 在 docker swarm 模式下将容器 ip (10.255.0.2) 作为远程地址转发

java - 如何使用 Docker 文件通过 Junit 测试运行 Spring Boot 应用程序

amazon-web-services - 每个环境单独的 Dockerrun.aws.json

linux - Docker Devmapper 空间问题 - 增加大小

kubernetes - 如何在 Google Cloud Container Engine 上公开公开 Traefik 入口 Controller ?

docker - 全局使用 traefik 中间件