J’imagine que rien que le nom « Cloudflare Automatic HTTPS Rewrites » peut être mal interprété. Cloudflare a 2 fonctionnalités :
- « Always Use HTTPS » redirige toutes les requêtes HTTP simples vers HTTPS, tout comme
force_httpsdans Discourse. Les deux étaient précédemment activés, et j’ai désactivé les deux pour tester si HTTPS avait quelque chose à voir avec le problème ou les pages Discourse en chargement infini et les requêtescurlqui se bloquent. Cela a parfaitement fonctionné, résolvant même tout le problème pour les requêtes HTTPS également, mais uniquement parce que j’ai désactivé « Cloudflare Automatic HTTPS Rewrites » dans le même temps. - « Cloudflare Automatic HTTPS Rewrites » modifie les documents HTML, CSS et JavaScript pour remplacer toutes les URL HTTP simples intégrées par des variantes HTTPS, là où Cloudflare pense que l’hôte est accessible via HTTPS (basé sur la liste de préchargement HSTS et autres). Ceci afin d’éviter les avertissements de contenu mixte.
Forcer ou ne pas forcer HTTPS chez Cloudflare, au niveau du proxy hôte ou chez Discourse n’a pas d’importance. Ce qui a causé le problème est la combinaison du filtre mod_sed au niveau du proxy hôte et des modifications HTTP simples intégrées par Cloudflare. Il y a donc deux étapes où le contenu des documents a été filtré. Le problème n’était pas qu’il y ait eu un changement de contenu réel (il n’y a pas de contenu mixte sur notre site, « Cloudflare Automatic HTTPS Rewrites » ne modifie donc pas réellement le corps du document), mais probablement lié aux chunks, au buffer ou au timing.