
作業セットアップ
私の構成は
- Nginx リバース プロキシを備えたパブリック IP を持つ外部 VPS (A)
- Nginx を使用した内部サーバー (B)
- スタンドアロンアプリケーション(コンテナ化されていない)Keycloak 17.0.1
これは次のようになります。私はそのサーバーに登録したドメインを持っています。auth.example.com
私が行くときhttps://auth.example.com管理コンソールへのリンクを含む通常の Keycloak ページが表示されます。
管理コンソールをクリックすると、マスター領域を管理するために適切にログインできます。
問題
Keycloakをコンテナ化するとすぐに、管理コンソールのすべてのリンクと一部のスクリプトがからに変更されたため機能しなくなりましたhttps://auth.example.com
。https://localhost
構成
Keycloak をコンテナ化することで、nginx 構成を一切変更しませんでした。
NginxA
location /
{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://[nginx b ip];
}
NginxB の
server
{
server_name auth.example.com;
location /
{
proxy_pass http://localhost:[exposed docker port];
}
listen 80;
}
スタンドアロンのキークローク(動作コマンド)
/usr/bin/bash bin/kc.sh start --proxy edge --hostname=auth.example.com --db-url-host localhost --db-username keycloak --db-password password
Docker化されたキークローク (docker-compose)
keycloak:
image: quay.io/keycloak/keycloak:latest
command: start --auto-build --features=token-exchange --hostname-strict-backchannel=true --hostname=auth.example.com
depends_on:
- db
environment:
KC_METRICS_ENABLED: "true"
DB_VENDOR: [somedbvendor]
DB_ADDR: db
DB_DATABASE: keycloak
DB_USER: keycloak
DB_PASSWORD: password
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
KC_PROXY: edge
PROXY_ADDRESS_FORWARDING: "true"
ports:
- "8081:8080"
networks:
- net
所有しているアプリケーション全体とその依存関係をコンテナ化したいのですが、Keycloak は完了できない最初のステップです。