Рейтинг:0

Контейнерный Keycloak за обратным прокси-сервером Nginx запрашивает localhost

флаг us

Рабочая установка

У меня есть конфигурация

  • внешний 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 — это первый шаг, который я не могу выполнить.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.