
Configuración de trabajo
tengo una configuracion de
- VPS externo con IP pública que tiene proxy inverso Nginx (A)
- servidor interno con Nginx (B)
- Aplicación independiente (no en contenedores) Keycloak 17.0.1
Que se parece a esto. Tenía un dominio registrado para ese servidor que es (digamos)autenticación.ejemplo.com
Cuando voy ahttps://auth.example.comPuedo ver la página normal de capa de claves con un enlace a la consola de administración.
Al hacer clic en la consola de administración, puedo iniciar sesión correctamente para administrar el dominio maestro.
El problema
Tan pronto como incluyo en un contenedor la capa de claves, todos los enlaces para la consola de administración y algunos scripts ya no funcionan porque se cambiaron de https://auth.example.com
ahttps://localhost
Configuraciones
Al contener keycloak, no modifiqué ninguna de las configuraciones de nginx.
Nginx-A
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;
}
Capa de teclas independiente (comando de trabajo)
/usr/bin/bash bin/kc.sh start --proxy edge --hostname=auth.example.com --db-url-host localhost --db-username keycloak --db-password password
Capa de claves dockerizada (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
Me gustaría incluir en contenedores toda la aplicación que tengo y sus dependencias, y la capa de claves es un primer paso que no puedo completar.