当 Nginx 配置在 Discourse 前面时,登录(已启用 SSO)无法正常工作

你好,

在 Discourse 前部署 Nginx(Nginx → AWS 负载均衡器 → Discourse 容器)后,登录功能完全失效。输入凭据后,系统仅被重定向回 Discourse 首页。

Nginx 已配置为将 HTTP 重定向至 HTTPS。我们已在 AWS 证书管理器中为域名及其子域名配置了证书。

已安装 Discourse SAML 插件。同时,我们还通过其他应用程序使用 SSO,其配置使用 HTTPS。站点设置中已启用 force_https。

我们确认 SSO 应用程序本身运行正常,但似乎在部署 Nginx 后,Discourse 的认证功能停止了工作。

针对我们的论坛站点(Discourse),Nginx 配置如下:

server {
    server_name [subdomain.domain.com];
    location / {
        resolver [insert.resolver.ip.here] valid=60s;
        if ($http_x_forwarded_proto != "https") {
           rewrite ^(.*)$ https://$server_name$1 permanent;
        }
        proxy_pass [AWS-load-balancer-domain];
        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 $scheme;
        proxy_set_header Referer $http_referer;
    }
}

该 Nginx 配置对我们主站的其他子域名均能正常工作。

以下是 SSO 的详细日志。尽管我看到的唯一错误是关于 ActionController::RoutingError (No route matches [GET] "/.env")

verbose-sso-log.txt (6.3 KB)