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

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

traefik | | confluence keycloak 

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

Traefik定义了一个虚拟networking,合stream和keycloak也在这个networking。 使用正确的DNS设置,用户可以访问traefik,汇合和keycloak。 它按预期工作。

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

有可能直接连接到服务(我们假设这是由于共享networking),但是如果我们即连接到keycolak容器,并做类似

 curl -k https://confluence.our.domain -v 

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

如果我们连接到keycolak容器,并做

 curl -k -v -H 'Host: confluence.our.domain' https://traefik 

路由完成。

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

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

对于所有与traefik交谈的容器都可以使用的基于DNS的configuration,请在compose.yml文件中使用以下networking“别名”部分:

 version: '3.3' networks: proxy: external: name: proxy services: traefik: image: traefik:1.4 networks: - proxy: aliases: - confluence.our.domain 

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

您应该在组合文件中使用extra_host键在容器中插入主机条目。 你想创build指向你的traefik反向代理的FQDN

这将确保您使用正确的主机名称的HTTPS有效和路由工作

 version: '3' service: xyz: extra_host: - "confluence.our.domain:<traefikip>" ...