답변 주셔서 감사합니다. 제 메시지가 분명하지 않았던 것 같습니다. 실제로는 rails 명령어로 force_https를 변경할 수 있으니 문제없습니다. 좀 더 명확히 말씀드리자면:
며칠 전에 수행한 마지막 업그레이드(이때 docker 컨테이너를 재빌드해야 했습니다) 이전까지는 force_https를 true로 설정하고 nginx 설정 파일의 server 섹션에 아래 패치를 적용하면 정상적으로 로그인할 수 있었습니다:
if ($http_x_forwarded_proto = 'http'){
return 301 https://$host$request_uri;
}
그리고 잘 작동했습니다. 그러나 업그레이드 이후에는 동일한 패치를 적용해도 다시 로그인할 수 없게 되었고, 잘 알려진 "Unknown error"가 발생했습니다.
production 로그에서 다음과 같은 트레이스를 확인했습니다:
Started POST "/session" for 193.134.222.4 at 2020-05-14 19:24:40 +0000
Processing by SessionController#create as */*
Parameters: {"login"=>"rossierd", "password"=>"[FILTERED]", "second_factor_method"=>"1", "timezone"=>"Europe/Zurich"}
Can't verify CSRF token authenticity.
Rendering text template
Rendered text template (Duration: 0.0ms | Allocations: 1)
Filter chain halted as :verify_authenticity_token rendered or redirected
Completed 403 Forbidden in 2ms (Views: 0.7ms | ActiveRecord: 0.0ms | Allocations: 1101)
참고로, 저희 discourse 컨테이너는 https로 접근 가능한 VM에서 실행되고 있습니다.
업그레이드 전후로 이러한 동작 변화가 발생한 원인에 대해 혹시 추측하시는 바가 있으신가요?
현재까지는 force_https를 false로 비활성화했는데, 왼쪽 상단의 로고(브랜드 로고)가 http:// 요청으로 참조되고 있어 제대로 표시되지 않는 것을 제외하면 모든 것이 잘 작동합니다.
참고로 저희 사이트의 URL은 다음과 같습니다: https://discourse.heig-vd.ch