TechGeek
(TechGeek)
9월 27, 2021, 4:26오후
1
파일 /assets/application-7c87db9088046beb643be94b61428105469e084e8d02f141c57adfaf14168c63.js 중 하나가 거의 3.1MB 크기로, Nginx 리버스 프록시에서 error.log에 많은 경고를 유발하고 있습니다.
an upstream response is buffered to a temporary file /var/lib/nginx/proxy/2/77/0012036772 while reading upstream, client: XXXXXX
이 정도로 큰 JavaScript 파일이 무엇에 사용되는지 아는 분이 계신가요?
이 파일의 크기를 줄이는 방법이 있을까요? Nginx 경고 메시지를 줄이는 한 가지 방법은 버퍼 크기를 3.1MB로 늘리는 것이지만, 이는 기본 Nginx 설정에 비해 너무 과도한 조치가 아닌지 궁금합니다.
Discourse 사이트를 처음 로드할 때, 전체 JavaScript 애플리케이션이 브라우저로 전송됩니다(그 후 캐시되므로 이후 페이지 로딩은 훨씬 빠릅니다). 그 3MB 파일이 바로 그것입니다.
Falco
(Falco)
9월 27, 2021, 5:53오후
3
공식 설치 가이드를 따를 경우, 이 파일을 브로틀리 압축으로 서빙하는 사전 구성된 nginx 리버스 프록시를 받게 된다는 점도 참고할 가치가 있습니다. 이를 통해 파일 크기가 400KB로 줄어듭니다.
TechGeek
(TechGeek)
9월 28, 2021, 3:56오전
4
Falco님 감사합니다. 웹 컨테이너와 데이터 컨테이너를 분리하고 수동으로 리버스 프록시를 구성했습니다. discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub 에 있는 가이드는 스탠드얼론 컨테이너용인 것 같습니다.
미리 구성된 nginx 리버스 프록시 구성에 대해 말씀하신 것은 discourse/config/nginx.sample.conf at main · discourse/discourse · GitHub 의 구성을 사용하라는 뜻인가요?
Falco
(Falco)
9월 28, 2021, 1:17오후
5
해당 구성 파일은 공식 설치 가이드에서 사용하는 템플릿이지만, 설치 중에도 설치 스크립트에 의해 크게 수정됩니다.
공식 설치 가이드를 따를 때만 구성 파일을 제공하게 됩니다. 가이드에서 벗어나면 brotli, HTTP/2, IPv6 등 우리가 지원하는 기능이 누락되지 않도록 주의하셔야 합니다.
TechGeek
(TechGeek)
9월 28, 2021, 2:16오후
6
@Falco 디스코urses 포럼을 읽어보니 웹 컨테이너와 DB 컨테이너를 분리하는 것이 선호되거나 권장되는 방식인 것 같습니다. 분리된 컨테이너에 대한 수동 nginx 설정 또는 자동 설치에 관한 공식 가이드가 있다면 좋겠습니다.
Falco
(Falco)
9월 28, 2021, 3:07오후
7
우리가 권장하는 설치 방법은 공식 설치 가이드에 문서화된 방식입니다. 다만, 웹/데이터 컨테이너를 별도로 사용하는 경우에도 웹 컨테이너 내부에 사전 설정된 nginx에 영향을 주지 않으며, 추가적인 리버스 프록시가 필요 없이 동일한 방식으로 작동해야 합니다.
TechGeek
(TechGeek)
11월 5, 2021, 4:04오전
8
Nginx 프록시 → 개별 Web 및 DB 컨테이너 구성으로 여러 Discourse 포럼을 호스팅하면서 최적화를 찾고 있습니다. 이 시나리오에서는 공식 설치 과정에서 이루어지는 성능 향상이 Nginx 프록시에서 수동으로 이루어져야 한다고 가정합니다.