J’ai configuré une installation de Discourse version v2.3.0.beta2 sur AWS.
Cette pièce jointe montre comment je l’ai déployée. J’utilise l’image Docker officielle pour chaque instance du groupe de mise à l’échelle automatique.
J’ai deux distributions CloudFront :
L’une (cdn.civicxclub.com) pointant vers les buckets S3 pour servir les images téléchargées directement via le CDN. CELA FONCTIONNE.
L’autre (civicxclub.com) pointant vers l’équilibreur de charge, afin de servir l’application et tous les fichiers statiques depuis celui-ci. CELA NE FONCTIONNE PAS.
Voici la configuration des comportements que j’ai mise en place :
Le comportement par défaut a l’option « Mise en cache basée sur les en-têtes de requête sélectionnés » définie sur Tous afin d’éviter la mise en cache depuis le backend.
Tous les autres ont cette option définie sur Liste blanche et je mets en liste blanche les en-têtes Host, Origin et Referer.
Lorsque j’accède au site web via un navigateur et que j’inspecte les en-têtes d’un avatar par exemple, il est toujours indiqué « Miss from CloudFront ». Cependant, lorsque j’accède au fichier deux fois directement depuis le navigateur, il est indiqué « Hit from CloudFront ». La mise en cache fonctionne donc, mais pas lors du chargement des fichiers depuis la page web du forum.
La variable Discourse CDN est définie comme suit :
How can I then serve avatars, css and js files from this CDN if they are stored on the server??
I’ve tried to use the cdn.civicxclub.com url which is mapping to the S3 bucket and add all the behaviours related to discourse static content, and it failed.