我有一个在端口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直接相互配置,则可以正常工作。我想知道为什么代理服务器会产生问题。
答案 0 :(得分:1)
您是否配置了 Keycloak 以便它知道它位于代理后面?
例如对于 docker,它是选项 -e PROXY_ADDRESS_FORWARDING=true