Контейнеризованный Keycloak за обратным прокси-сервером Nginx запрашивает localhost
Рабочая установка
У меня есть конфигурация
- внешний VPS с общедоступным IP-адресом и обратным прокси-сервером Nginx (A)
 - внутренний сервер с Nginx (B)
 - автономное приложение (не контейнерное) Keycloak 17.0.1
 
Это выглядит вот так. У меня был зарегистрирован домен для этого сервера, который (скажем) auth.example.com
Когда я захожу на https://auth.example.com, я вижу обычную страницу keycloak со ссылкой на консоль администратора.
Нажав на консоль администрирования, я могу правильно войти в систему и управлять основной областью.
Проблема
Как только я помещаю в контейнер keycloak, все ссылки на консоль администрирования и некоторые скрипты перестают работать, так как они изменены сhttps://auth.example.comкhttps://localhost
Конфиги
Контейнеризировав keycloak, я не изменил ни одну из конфигураций nginx.
Нгинкс А
              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];
        }
Нгинкс Б
      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
Dockerized keycloak (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 — это первый шаг, который я не могу выполнить.


