Здравствуйте,
При использовании Nginx перед Discourse (Nginx → AWS LB → контейнер Discourse) вход в систему полностью не работает. После ввода учетных данных происходит перенаправление на главную страницу Discourse.
Nginx настроен на перенаправление с HTTP на HTTPS. Для нашего домена и поддоменов у нас есть сертификаты в AWS Certificate Manager.
Установлен плагин SAML для Discourse. Также мы используем SSO через другое приложение, и его конфигурация использует HTTPS. В настройках сайта также включена опция force_https.
Мы можем подтвердить, что приложение SSO работает, но, похоже, аутентификация в Discourse перестала работать после настройки Nginx.
Для нашего форума (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)