Configurare de lucru
Am o configurație de
- VPS extern cu IP public care are proxy invers Nginx (A)
- server intern cu Nginx (B)
- aplicație autonomă (necontainerized) Keycloak 17.0.1
Care arată așa. Am avut un domeniu înregistrat pentru acel server care este (să spunem) auth.example.com
Cand merg la https://auth.example.com Pot să văd pagina obișnuită cu keycloak cu link către consola de administrare.
Făcând clic pe consola de administrare, mă pot autentifica corect pentru a gestiona domeniul principal.
Problema
De îndată ce containerizez keycloak toate linkurile pentru consola de administrare și unele scripturi nu mai funcționează, deoarece sunt modificate din https://auth.example.com
la https://localhost
Configurații
Prin containerizarea keycloak nu am modificat niciuna dintre configurațiile nginx.
Nginx A
Locație /
{
proxy_set_header Gazdă $gazdă;
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $gazdă;
proxy_set_header X-Forwarded-Server $gazdă;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $schema;
proxy_pass http://[nginx b ip];
}
Nginx B
Server
{
nume_server auth.example.com;
Locație /
{
proxy_pass http://localhost:[port docker expus];
}
asculta 80;
}
Keycloak autonom (comandă de lucru)
/usr/bin/bash bin/kc.sh start --proxy edge --hostname=auth.example.com --db-url-host localhost --db-username keycloak --db-password parola
Keycloak dockerizat (docker-compose)
mantaua cheii:
imagine: quay.io/keycloak/keycloak:latest
comandă: start --auto-build --features=token-change --hostname-strict-backchannel=true --hostname=auth.example.com
depinde de:
- db
mediu inconjurator:
KC_METRICS_ENABLED: „adevărat”
DB_VENDOR: [somedbvendor]
DB_ADDR: db
DB_DATABASE: keycloak
DB_USER: keycloak
DB_PASSWORD: parola
KEYCLOAK_ADMIN: administrator
KEYCLOAK_ADMIN_PASSWORD: administrator
KC_PROXY: margine
PROXY_ADDRESS_FORWARDING: „adevărat”
porturi:
- „8081:8080”
retele:
- net
Aș dori să containerizez întreaga aplicație pe care o am și dependențele lor și keycloak este un prim pas pe care nu îl pot finaliza.