你好,
在 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)