首页 > 解决方案 > Keycloak 作为 Apache2 背后的子资源

问题描述

Keycloak 在 Docker 映像 jboss/keycloak 上运行,并且环境变量 PROXY_ADDRESS_FORWARDING 设置为 true。我想在 Apache2 网络服务器后面设置 Keycloak 作为子资源。当我的 Apache 配置是:

ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/

我可以访问 KeyCloak,但是我无法访问服务器上的其他资源,例如 /panel 或 /wordpress。我尝试执行以下操作:

ProxyPass /keycloak/ http://127.0.0.1:8080/
ProxyPassReverse /keycloak/ http://127.0.0.1:8080/

但是通过上述配置,我被重定向到服务器上的 /auth 而不是 Keycloak 的身份验证。

您能帮我将 Keycloak 配置为 Apache2 网络服务器上的子资源吗?

标签: proxywebserverapache2keycloak

解决方案


我找到了让它工作的方法。我创建了以下 Dockerfile:

FROM jboss/keycloak
RUN sed -i -e 's/<web-context>auth<\/web-context>/<web-context>keycloak\/auth<\/web-context>/' $JBOSS_HOME/standalone/configuration/standalone-ha.xml

重建图像后,我将 Apache2 配置更改如下:

ProxyPass /keycloak/ http://127.0.0.1:8080/keycloak/
ProxyPassReverse /keycloak/ http://127.0.0.1:8080/keycloak/

现在 KeyCloak 在与子资源相同的域中工作。


推荐阅读