Discourse n'utilise-t-il pas la compression brotli ou gzip ?

Bonjour. J’ai installé Discourse sur un serveur CentOS. J’utilise également le panneau web CentOS.

Il semble que les fichiers ne soient pas compressés sur Discourse, alors qu’il est censé utiliser Brotli par défaut et revenir à gzip en cas d’échec.

Exemple pour ce fichier de 2,2 Mo :
https://forum.canapin.win/assets/application-301651b1c7400a000974a9cecafd44ad3304cf647cf17bcfa7af68e9ed1ac4b7.js

En-têtes de réponse :
    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
En-têtes de requête :
    :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

Une idée de la raison ?

Votre installation suit-elle la procédure standard de notre guide officiel avec Docker ?

J’ai suivi cela :
discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
J’ai simplement modifié les ports dans app.yml avant de lancer l’initialisation de l’application, car le port 80 était déjà utilisé.

Je n’ai pas utilisé discourse setup, j’avais déjà docker installé.

Pour être très précis sur la manière dont j’ai installé Discourse, voici les étapes que j’ai suivies :

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

J’ai modifié mes ports ici :

## Quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous souhaitez que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
## consultez https://meta.discourse.org/t/17247 pour plus de détails
expose:
  - "8080:80" # redirige le port hôte 80 vers le port du conteneur 8080 (http)
  - "4443:443" # redirige le port hôte 443 vers le port du conteneur 4443 (https)
./launcher bootstrap app
./launcher start app

Et j’ai redirigé mon port dans ma configuration nginx du panneau de contrôle CentOS Web :

C’est tout.

Eh bien, voilà votre problème : il fait du proxy pour certaines choses sans les transmettre correctement.

Je vous recommande de vous en tenir à notre installation standard, qui connecte directement Internet à notre conteneur et gère tout cela pour vous.

Merci. Je ne connais pas grand-chose aux serveurs et à ce genre de choses, et je ne sais pas comment y parvenir. J’ai précédemment utilisé Plesk avec ses paramètres par défaut, et tout fonctionnait parfaitement, même avec un proxy nginx.

Je vais essayer de comprendre cela de toute façon, je suppose.

Grâce à @Arkshine, mon problème a été résolu.

J’ai dû commenter ces lignes dans /etc/nginx/proxy.inc :

proxy_hide_header Vary;
proxy_set_header Accept-Encoding '';

Le serveur envoie désormais les fichiers correctement compressés par Discourse :