proxy - 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 网络服务器上的子资源吗?
解决方案
我找到了让它工作的方法。我创建了以下 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 在与子资源相同的域中工作。
推荐阅读
- c++ - 不同 GLIBC 版本的 Linux“交叉编译”
- c - 为什么这个 Visual Studio Code 只是运行而不给出输出?
- reactjs - 在选择框中获取 API 问题
- react-native - 如何使用按钮单击获取平面列表上的数据?
- java - 为什么在构建 docker 映像时突然 apk jdk11 安装停止工作?
- wordpress - Wordpress Single Sign On Client 免费插件可针对外部 OAuth2 服务器对用户进行身份验证
- python - 没有括号行为的Python多个'OR''AND'条件
- c# - 为什么不能在 httphandler 中使用依赖注入?
- javascript - 类组件中的 React Navigation (5+) navigation.addListener()
- javascript - 获取选中复选框的值,重新添加已选中的项目