只要測試的@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我想你的建議,但沒有奏效 –