개발 환경에서만 Ember CLI 프록시를 사용합니다. 표준 설치 환경에서는 요청이 사용자 → NGINX → Rails 순서로 전달됩니다. 이 패턴을 유지하는 것을 권장합니다. Ember CLI 구성은 프로덕션 환경 사용을 위해 설계되지 않았기 때문입니다. 설령 동작하게 만들 수 있다 해도(쉽지 않을 것입니다) 보안 및/또는 성능 관련 문제가 발생할 가능성이 높습니다.
저는 두 개의 설치 환경을 가지고 있습니다. 둘 다 ‘개발’ 환경인데, 하나는 이 것이고, 다른 하나는 Docker가 아닌 Ubuntu 환경입니다.
Docker가 아닌 개발 서버에서 /stylesheets/에 대한 호출은 Rails 서버에서 “Transfer-Encoding: chunked” 헤더를 포함하지 않고, 대신 “Content-Length” 값을 포함하는 것을 발견했습니다… 이것이 어떻게 달라질 수 있는지 설명해 주실 수 있나요?
시스템을 성공적으로 속였습니다. Content-Length 헤더를 강제하기 위해 StylesheetsController를 오버라이드하여 chunked 응답을 방지했습니다. 이를 통해 Ember CLI의 나쁜 버릇을 우회하고 nginx의 사양 미준수 문제를 피할 수 있었습니다.
이 해결책을 찾게 된 계기는, https를 사용하는 다른 Ember CLI/nginx 설정에서 Rails가 Stylesheet 응답을 chunked로 보내지 않는다는 사실을 발견한 것이었습니다. (이것이 왜 그런지 아는 분이 있을까요?) 그 후 헤더를 강제해보려고 시도했는데, 놀랍게도 성공했습니다!