Настройка обратного прокси-сервера для KeyCloak docker с пользовательским базовым URL
Как я могу установить docker keycloak base url
в качестве параметра ?
у меня есть следующая конфигурация обратного прокси-сервера nginx:
server {
listen 80;
server_name example.com;
location /keycloak {
proxy_pass http://example.com:8087/;
}
}
когда я пытаюсь получить доступ http://example.com/keycloak/ у меня есть HTTP-перенаправление keycloak на http://example.com/auth/ вместо http://example.com/keycloak/auth/
какие идеи?
1 ответов
просто проверил, что @home, и на самом деле несколько дополнений конфигурации необходимы:
1 / Запустите контейнер keycloak с помощью env -e PROXY_ADDRESS_FORWARDING=true
как объясняется в документах, это требуется в прокси-способе доступа к keycloak:
docker run -it --rm -p 8087:8080 --name keycloak -e PROXY_ADDRESS_FORWARDING=true jboss/keycloak:latest
также объясняется в этом поэтому вопрос
2/ менять веб-контексте внутри файла конфигурации keycloak $JBOSS_HOME/standalone/configuration/standalone.xml
по умолчанию конфигурация keycloak указывает на auth
<web-context>auth</web-context>
затем вы можете изменить его на keycloak/auth
<web-context>keycloak/auth</web-context>
Если вам нужно автоматизировать это для docker, просто создайте новый образ keycloak:
FROM jboss/keycloak:latest
USER jboss
RUN sed -i -e 's/<web-context>auth<\/web-context>/<web-context>keycloak\/auth<\/web-context>/' $JBOSS_HOME/standalone/configuration/standalone.xml
3 / добавьте некоторую информацию прокси в конфигурацию nginx (в основном для обработки http / https)
location /keycloak {
proxy_pass http://example.com:8087;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
если вы проксируете запросы от nginx до keycloak на том же сервере, я рекомендую использовать proxy_pass http://localhost:8087;
, а если не пытаться использовать частную сеть избегайте проксирования через внешние веб-запросы.
надеюсь, что это помогает