هل لا يستخدم Discourse ضغط Brotli أو Gzip؟

مرحبًا. قمت بتثبيت Discourse على خادم CentOS. كما أنني أستخدم لوحة تحكم CentOS.

يبدو أن الملفات غير مضغوطة في Discourse، رغم أنه من المفترض أن يستخدم Brotli افتراضيًا ويعود إلى Gzip كخيار احتياطي.

مثال على هذا الملف الذي حجمه 2.2 ميجابايت:
https://forum.canapin.win/assets/application-301651b1c7400a000974a9cecafd44ad3304cf647cf17bcfa7af68e9ed1ac4b7.js

رؤوس الاستجابة:
    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
رؤوس الطلب:
    :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؟

لقد اتبعت الخطوات التالية:
discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
وقد قمت فقط بتغيير المنافذ في ملف app.yml قبل بدء تشغيل التطبيق، لأن المنفذ 80 كان مستخدمًا بالفعل.

لم أستخدم أداة discourse setup، حيث كان لدي Docker مثبتًا مسبقًا.

لتكون دقيقًا للغاية بشأن كيفية تثبيت Discourse، إليك الخطوات التي اتبعتها:

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

غيرت المنافذ هنا:

## أي منافذ TCP/IP يجب أن يعرضها هذا الحاوية؟
## إذا كنت تريد أن يشارك Discourse منفذًا مع خادم ويب آخر مثل 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

ثم قمت بإعادة توجيه المنفذ في إعدادات nginx الخاصة بي في لوحة تحكم CentOS Web:

هذا كل شيء.

حسناً، هذه هي مشكلتك؛ إنه يقوم بعمل وكيل (proxy) للعناصر ولا يمررها بشكل صحيح.

أنصحك بالالتزام بتثبيتنا القياسي الذي يربط الإنترنت مباشرةً بالحاوية الخاصة بنا ويتولى كل هذه الأمور نيابةً عنك.

شكرًا لك. لا أعرف الكثير عن الخوادم وأشياء من هذا القبيل، ولا أعرف كيف يمكنني تحقيق ذلك. لقد استخدمت سابقًا Plesk مع إعداداته الافتراضية، وكان يعمل بشكل مثالي حتى مع وكيل nginx.

سأحاول فهم ذلك على أي حال، أعتقد.

شكرًا لـ @Arkshine تم حل مشكلتي.

كان علي التعليق على هذه الأسطر في /etc/nginx/proxy.inc:

proxy_hide_header Vary;
proxy_set_header Accept-Encoding '';

الآن يقوم الخادم بإرسال الملفات مضغوطة بشكل صحيح بواسطة Discourse: