Nginx を前に設定した場合、ログイン (SSO 有効) が機能しません Discourse

こんにちは、

Discourse の前に Nginx を配置した場合(Nginx → AWS LB → Discourse コンテナ)、ログインが全く機能しません。認証情報を入力すると、Discourse のホームページにリダイレクトされてしまいます。

Nginx は HTTP から HTTPS へのリダイレクトを設定しています。ドメインとサブドメインには AWS Certificate Manager で証明書が用意されています。

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)