Discourse가 brotli나 gzip 압축을 사용하지 않나요?

안녕하세요. CentOS 서버에 Discourse를 설치했습니다. 또한 CentOS Web Panel을 사용 중입니다.

Discourse는 기본적으로 brotli를 사용하고 gzip로 폴백해야 하지만, 파일이 압축되지 않는 것 같습니다.

2.2 MB인 이 파일의 예시:
https://forum.canapin.win/assets/application-301651b1c7400a000974a9cecafd44ad3304cf647cf17bcfa7af68e9ed1ac4b7.js

Response Headers:
    accept-ranges: bytes
    cache-control: max-age=31536000
    cache-control: public,immutable
    content-length: 2334732
    content-type: application/javascript
    date: Sat, 12 Oct 2019 23:36:50 GMT
    expires: Sun, 11 Oct 2020 23:36:50 GMT
    last-modified: Sat, 12 Oct 2019 23:33:24 GMT
    server: nginx/1.16.1
    status: 200
Request Headers:
    :authority: forum.canapin.win
    :method: GET
    :path: /assets/application-301651b1c7400a000974a9cecafd44ad3304cf647cf17bcfa7af68e9ed1ac4b7.js
    :scheme: https
    accept: */*
    accept-encoding: gzip, deflate, br
    accept-language: en-US,en;q=0.9
    cache-control: no-cache
    cookie: _t=89fc0a58f2a08712f3156f2687553cf8; __profilin=p%3Dt%2Ca%3Da546654bdc3538a213cd6c6fcc4c2a92; _forum_session=YnhETkNaTjF1YTEzVXUvZW1pS1NuTVVzdm1WWndlRktMdmNlU3hBalR3dUYwRGVUTzhBSlM5WkNiS0hDdVQvRmtGeGtLOTRRNndRWk9YUFczbTJHdjMyajlNNkpXZ2xzeEZwMkVmd2grcHlILzJVVmZWeFVVNlBERVF4S3VDMkJ0N2pUWktJWitmbXc2MDFFV1VEcG56M09jalRjMEJOb2t6M1NSbjJQUit1eDFRZkdCMGplVjhLK1JUNFVNdnRmVmZuK1B1NVdwK0N5Q1VrNTdDa01tdXh1T3h2aDY4OGx0SDMzRC9Ma0YzdElFS0p6b0x3algvVnRhVlljVDQyOS0tYnpSeFl5MjNoMVFVMm42UE0ybFJ6Zz09--b49c4c072e917618f874818e246298bce81235e5
    dnt: 1
    pragma: no-cache
    referer: https://forum.canapin.win/
    sec-fetch-mode: no-cors
    sec-fetch-site: same-origin
    user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36

이유에 대해 혹시 아이디어가 있으신가요?

공식 설치 가이드에 따라 Docker를 사용하여 표준 설치를 진행하셨나요?

다음 내용을 따랐습니다:

포트 80이 이미 사용 중이었기 때문에, 앱을 부트스트랩하기 전에 app.yml 파일에서 포트만 변경했습니다.

discourse setup은 사용하지 않았습니다. 도커는 이미 설치되어 있었거든요.

Discourse를 설치한 방법에 대해 매우 정확하게 설명드리면, 저는 다음과 같은 단계를 따랐습니다:

git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
cp samples/standalone.yml containers/app.yml

여기서 포트를 변경했습니다:

## 이 컨테이너는 어떤 TCP/IP 포트를 노출해야 합니까?
## Apache나 nginx 같은 다른 웹서버와 포트를 공유하려면
## 자세한 내용은 https://meta.discourse.org/t/17247을 참조하세요
expose:
  - "8080:80" # 호스트 포트 80을 컨테이너 포트 8080으로 포워딩 (http)
  - "4443:443" # 호스트 포트 443을 컨테이너 포트 4443으로 포워딩 (https)
./launcher bootstrap app
./launcher start app

그리고 CentOS Web Panel의 nginx 설정에서 포트를 리다이렉트했습니다:

이것이 전부입니다.

여기가 바로 문제입니다. 트래픽을 프록시 처리하고 있지만, 제대로 통과시키지 못하고 있습니다.

인터넷을 컨테이너에 직접 연결하고 이러한 모든 사항을 처리해 주는 표준 설치 방식을 그대로 유지하는 것을 권장합니다.

감사합니다. 서버나 이런 것들에 대해 잘 알지 못해서 어떻게 해야 할지 모르겠습니다. 이전에 Plesk를 기본 설정으로 사용했을 때는 nginx 프록시를 사용해도 완벽하게 작동했습니다.

어쨌든 알아볼 방법을 찾아보겠습니다.

@Arkshine 덕분에 제 문제가 해결되었습니다.

/etc/nginx/proxy.inc 파일에서 다음 줄들을 주석 처리해야 했습니다:

proxy_hide_header Vary;
proxy_set_header Accept-Encoding '';

이제 서버가 Discourse에 의해 적절히 압축된 파일을 전송합니다: