故障描述
在内网部署了一台 Keycloak,然后在外部负载均衡器配置了反向代理(同时挂载了 TLS 证书),但是测试时发现外部用户无法访问 Keycloak,卡在下列页面。
又或者报下列错误
通过浏览器的开发者功能发现,用户在请求一个页面时的访问 URL 不对(auth2.xxx是内网用的域名,auth.xxx才是正确的域名)。
查询后在下列论坛中找到了解法:
修改 Keycloak 的环境变量,添加 KC_HOSTNAME_ADMIN_URL 行(需要是完整的 URL):
keycloak:
restart: always
image: quay.io/keycloak/keycloak:latest
command: start --proxy edge --hostname=auth.xx.com --hostname-strict=false --db postgres --db-url-host postgres --db-username keycloak --db-password Admin123
depends_on:
- postgres
ports:
- "8088:8080"
environment:
- KEYCLOAK_ADMIN=admin
- KEYCLOAK_ADMIN_PASSWORD=123456
- KC_HOSTNAME_ADMIN_URL=https://auth.xx.com