Рабочая установка
У меня есть конфигурация
- внешний VPS с общедоступным IP-адресом с обратным прокси-сервером Nginx (A)
- внутренний сервер с Nginx (B)
- отдельное приложение (не в контейнере) Keycloak 17.0.1
Который выглядит так. У меня был зарегистрирован домен для этого сервера, который (скажем) auth.example.com
Когда я иду в https://auth.example.com Я вижу обычную страницу keycloak со ссылкой на консоль администратора.
Нажав на консоль администрирования, я могу правильно войти в систему, чтобы управлять основной областью.
Эта проблема
Как только я контейнеризирую keycloak, все ссылки на консоль администрирования и некоторые скрипты больше не работают, так как они изменены с https://auth.example.com
к https://локальный хост
Конфиги
Контейнеризируя keycloak, я не изменил ни одну из конфигураций nginx.
Нгинкс А
место расположения /
{
proxy_set_header Хост $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 $ схема;
proxy_pass http://[nginx b ip];
}
Нгинкс Б
сервер
{
имя_сервера auth.example.com;
место расположения /
{
proxy_pass http://localhost:[открытый порт докера];
}
слушать 80;
}
Автономный keycloak (рабочая команда)
/usr/bin/bash bin/kc.sh start --proxy edge --hostname=auth.example.com --db-url-host localhost --db-username keycloak --db-password password
Докеризированный keycloak (docker-compose)
плащ:
изображение: quay.io/keycloak/keycloak:последнее
команда: start --auto-build --features=token-exchange --hostname-strict-backchannel=true --hostname=auth.example.com
зависит от:
- дб
среда:
KC_METRICS_ENABLED: "истина"
DB_VENDOR: [некий продавец]
DB_ADDR: дб
DB_DATABASE: маскировка ключей
DB_USER: маскировка ключей
DB_PASSWORD: пароль
KEYCLOAK_ADMIN: администратор
KEYCLOAK_ADMIN_PASSWORD: администратор
KC_PROXY: край
PROXY_ADDRESS_FORWARDING: "верно"
порты:
- "8081:8080"
сети:
- сеть
Я хотел бы поместить в контейнер все приложение, которое у меня есть, и его зависимости, а keycloak — это первый шаг, который я не могу выполнить.