使用自定义基址URL为Keycloak泊坞窗配置反向代理
问题描述:
如何将docker keycloak base url
设置为参数?使用自定义基址URL为Keycloak泊坞窗配置反向代理
我有以下nginx的反向代理配置:
server {
listen 80;
server_name example.com;
location /keycloak {
proxy_pass http://example.com:8087/;
}
}
当我尝试访问http://example.com/keycloak/我得到了keycloak HTTP重定向到http://example.com/auth/而不是http://example.com/keycloak/auth/
任何想法?
答
只要测试的@home,并且需要实际多个配置加法:
1 /与ENV -e PROXY_ADDRESS_FORWARDING=true
在docs所解释运行keycloak容器,这是必需的在访问到keycloak的代理方式:
docker run -it --rm -p 8087:8080 --name keycloak -e PROXY_ADDRESS_FORWARDING=true jboss/keycloak:latest
此外,在解释了这个SO question
2 /更改web的上下文 keycloak的配置文件中$JBOSS_HOME/standalone/configuration/standalone.xml
默认keycloak配置指向auth
<web-context>auth</web-context>
然后,你可以将其更改为keycloak/auth
<web-context>keycloak/auth</web-context>
如果您需要为泊坞窗自动完成这个,只要创建一个新的keycloak image:
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;
,如果不尝试使用一个专用网络,以避免通过外部Web请求进行代理。
希望这有助于
FrancoisMaturel建议:'位置/ keycloak {proxy_pass http://example.com:8087/keycloak;}'@FrançoisMaturel我想你的建议,但没有奏效 –