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>" ...