+-
nginx – 使用自定义基本URL为Keycloak docker配置反向代理
如何将docker keycloak base url设置为参数?

我有以下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运行keycloak容器,这是访问keycloak的代理方式所必需的:

docker run -it --rm -p 8087:8080 --name keycloak -e PROXY_ADDRESS_FORWARDING=true jboss/keycloak:latest

也在这个SO question中解释

2 /更改keycloak配置文件中的web-context $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;,如果没有尝试使用专用网络来避免通过外部Web请求进行代理.

希望这可以帮助

点击查看更多相关文章

转载注明原文:nginx – 使用自定义基本URL为Keycloak docker配置反向代理 - 乐贴网