简言之,情况如下。(我会在一瞬间更新)
参考问题:Keycloak in Docker "Failed to turn code into token"
我在docker-compose中使用Traefik作为SSL证书的反向代理。我已经部署了Keycloak作为监听keycloak.example.com
的服务。另一个服务使用密钥斗篷进行身份验证。
用户Web应用程序能够访问https://keycloak.example.com
上的keycloak,但另一个容器没有遵循他们试图直接在容器上连接的https://keycloak.example.com
,因此没有找到SSL并被拒绝连接。
service_1 | 09 Jun 19:05:32 ERROR [adapters.OAuthRequestAuthenticator] - failed to turn code into token
service_1 | java.net.ConnectException: Connection refused (Connection refused)
我考虑的是:
1.直接在keycloak服务上使用SSL终止
1.在另一个网络上运行keycloak并强制它通过主机传递流量
1.运行另一个traefik/keycloak组合来分离SSL终止。
有没有更简单的解决方案来强制docker服务通过traefik传递所有流量?
我尝试从service_1内部ping和curl到keycloak,只有默认端口(8080)应答,因为这是默认运行的keycloak。
1条答案
按热度按时间qij5mzcb1#
最简单的方法是在消费者服务上覆盖DNS条目。换句话说,强制容器访问主机IP,而不是在Docker网络内部查找,从而通过Traefik代理。
1.添加另一个环路IP地址
1.添加
extra_hosts
:参考文献:1 2 3