使用 nginx 作为反向代理和 keycloak 作为上游服务器的组合失败

Posted

技术标签:

【中文标题】使用 nginx 作为反向代理和 keycloak 作为上游服务器的组合失败【英文标题】:Combination of using nginx as a reverse proxy with keycloak as upstream server fails 【发布时间】:2018-05-04 20:44:49 【问题描述】:

我们是 nginx 新手,正在尝试用它替换 httpd。 我们有以下 nginx 配置:

location /auth 
      proxy_pass http://keycloak_server$request_uri;

      proxy_http_version 1.1;

      proxy_set_header Host               $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-Proto  https;

这适用于提供对管理员门户的访问。但是,我们也使用 keycloak 对我们的应用程序进行身份验证,问题是 keycloak 以 302 重定向响应,但是 nginx 将其视为 502 bad gateway 错误。

apache httpd 可以正常工作。 我们做错了什么?任何指针或具体的配置指导将不胜感激。

【问题讨论】:

【参考方案1】:

问题已解决。这是因为上游发送的标头太大。修改代理的缓冲区大小有效。

【讨论】:

以上是关于使用 nginx 作为反向代理和 keycloak 作为上游服务器的组合失败的主要内容,如果未能解决你的问题,请参考以下文章

使用 nginx 反向代理后面的 keycloak 保护 nodejs 中的路由

Keycloak NGINX 反向代理问题

使用反向代理后面的 keycloak 进行身份验证失败

在 EC2 上部署的 docker 中使用 flask_oidc 和 nginx 反向代理的烧瓶应用程序在使用 keycloak 进行身份验证后给出未授权错误

使用自定义基本 URL 为 Keycloak docker 配置反向代理

在反向代理后面使用 Keycloak:无法打开管理员登录页面,因为内容混合