keycloak(Nginx)的反向代理配置

时间:2017-06-28 10:24:13

标签: nginx spring-boot keycloak jboss-tools

我有一个在端口8000上运行的spring boot应用程序(带有keycloak适配器)和在8080上运行的keycloak

我已经编辑了我的/ etc / hosts文件来路由来自我的测试域(foo.bar.com)的请求以路由到127.0.0.1

到目前为止,我对SSL不感兴趣。

我的示例nginx配置:

server {
    listen       80;
    server_name  foo.bar.com;

   location /myapp {
        proxy_set_header        Host               $host/myapp;
        proxy_set_header        X-Real-IP          $remote_addr;
        proxy_set_header        X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Host   $host;
        proxy_set_header        X-Forwarded-Server $host;
        proxy_set_header        X-Forwarded-Port   80;
        proxy_set_header        X-Forwarded-Proto  http;

        proxy_pass              http://localhost:8000/;
    }

   location /auth {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host   $host;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_pass              http://localhost:8080;
    }
}

问题:

这个样本nginx会不会足够?我发生了一些无限重定向。我的spring应用程序中来自keycloak适配器的日志说: 无状态Cookie

如果我不使用代理服务器,而是将应用程序和keycloak直接相互配置,则可以正常工作。我想知道为什么代理服务器会产生问题。

1 个答案:

答案 0 :(得分:1)

您是否配置了 Keycloak 以便它知道它位于代理后面?

例如对于 docker,它是选项 -e PROXY_ADDRESS_FORWARDING=true