안녕하세요,
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)