Discourse et Cloudflare

Il y a beaucoup d’allées et venues dans cette communauté concernant l’utilisation de Cloudflare. Certaines personnes disent que cela fonctionne très bien sans aucun problème et d’autres avertissent que le ciel va tomber s’ils l’utilisent. Quoi qu’il en soit, la plupart de ces informations sont très datées, datant de 2 ans à près d’une décennie.


Personnellement, j’utilise Cloudflare avec Discourse ici en 2022 sans aucun problème.

Je minify/cache entièrement toutes les pages et le HTML/CSS/JS, avec la compression Brotli. J’ai seulement exclu le /admin de la performance de Cloudflare par préférence personnelle.

Je n’ai pas désactivé le Rocket Loader, mais il était déjà désactivé par défaut. Le seul autre changement que j’ai apporté a été d’ajouter :

- "templates/cloudflare.template.yml"

à mes paramètres app.yml afin de restaurer les adresses IP des utilisateurs.

Il convient également de mentionner que le site fonctionnait bien avant même que je n’apporte la moindre modification.

7 « J'aime »

Tant que vous reconnaissez que ce que vous faites n’est pas du tout pris en charge, c’est bon.

CloudFlare continue d’ajuster ses optimisations et parfois elles ne causent aucun problème, puis d’autres fois elles mettent un site à genoux. Pour la plupart, l’idée que leur site se bloque sans aucune action de leur part serait assez inacceptable.

Si vous avez déjà regardé une reconstruction, vous saurez déjà que la minification se produit déjà dans Discourse. CloudFlare ne minify pas le site mieux qu’il ne le fait déjà lui-même. Avez-vous mesuré les performances avec et sans CF activé ?

Et n’oubliez pas qu’une fois que l’application JavaScript est chargée dans le navigateur, CloudFlare ralentit réellement votre site. Chaque octet de trafic entre l’application et le serveur doit maintenant également traverser le réseau CloudFlare, augmentant le nombre de sauts réseau et avec lui la latence.

Mais si cela fonctionne pour vous, c’est excellent. Assurez-vous simplement de le désactiver avant de demander de l’aide, car c’est le premier (et le plus probable) coupable.

10 « J'aime »

J’ai l’impression que la plupart (sinon la totalité) des craintes concernant l’utilisation de Cloudflare avec Discourse sont basées sur des problèmes d’il y a des années.

Cloudflare et Discourse ont tous deux beaucoup évolué au cours de la dernière décennie.

J’ai une vaste expérience des problèmes de mise en cache en général, et il est vrai qu’à l’époque, Cloudflare cassait beaucoup de scripts, mais il est assez stable depuis de nombreuses années maintenant.

Certains des outils de mise en cache les plus agressifs cassent définitivement des choses et nécessitent beaucoup d’optimisation pour qu’ils fonctionnent correctement. Ce sentiment général est toujours valable.

Cependant, êtes-vous sûr que l’affirmation selon laquelle Cloudflare n’est pas pris en charge par Discourse est toujours exacte ? Discourse possède littéralement des mécanismes intégrés pour gérer Cloudflare.

Quoi qu’il en soit, non, je n’ai pas fait de comparaison avant/après sur https://gtmetrix.com/, mais pour moi, c’est quelque peu discutable car j’ai d’autres raisons d’utiliser Cloudflare que la simple vitesse, donc à moins que cela n’ait causé une diminution spectaculaire (ou même notable) de la vitesse, je l’utiliserais de toute façon.

Pensée finale : Oui, chaque fois que vous utilisez un outil de CDN/mise en cache/minification/etc., surtout si vous êtes inexpérimenté, cela peut casser des choses. C’est vrai pour tous les sites Web, quelle que soit la façon dont ils sont construits. Mais l’idée que Cloudflare est presque garanti de semer le chaos sur tous les sites Discourse semble être une information dépassée qui doit cesser d’être perpétuée.

2 « J'aime »

Le modèle CloudFlare n’est pas une nouveauté, et si vous prenez le temps de regarder le code source, vous verrez que son seul but est de récupérer leurs plages d’adresses IP et de modifier nginx pour s’assurer qu’il considère CF-Connecting-IP comme la véritable adresse client, car celle-ci est masquée par le proxy que fournit le nuage orange. Ce n’est pas nouveau, cela existe depuis au moins sept ans. Vous pouvez utiliser Cloudflare pour masquer l’emplacement de votre serveur, ou agir comme un CDN peu coûteux pour les téléchargements, mais dans les deux cas, nous vous recommandons de désactiver toutes les fonctionnalités de performance et d’utiliser une règle de page pour activer la mise en cache de votre dossier de téléchargements.

Quel bénéfice une test via GTMetrix démontrerait-il ? Je pense que vous avez une compréhension fondamentale erronée du fonctionnement de Discourse pour citer cela. Discourse n’est pas un site web, c’est une application Javascript. Naviguer sur le site ne sert pas de pages HTML statiques au navigateur. L’application Javascript qui se charge dans votre navigateur communique directement avec le serveur, c’est pourquoi certains éléments de page ne semblent pas se recharger entre les clics. La réactivité de ladite application n’est déterminée que par les ressources du serveur et la latence entre le client et le serveur. CloudFlare ne peut pas accélérer votre instance Discourse, et sa présence entre les deux systèmes augmente la latence.

Ce qui précède est basé sur des années d’expérience, pas sur une impression. Discourse a toujours des problèmes périodiques avec Cloudflare. Outre le masquage de l’IP de votre serveur et l’économie d’un peu de transfert de données pour les téléchargements, Cloudflare ne peut rien faire pour accélérer un site Discourse.

5 « J'aime »

Le modèle CloudFlare n’est pas une nouveauté, et si vous prenez le temps de regarder la source, vous verrez que le seul but est de récupérer leurs plages d’adresses IP et de modifier nginx pour s’assurer qu’il examine le CF-Connecting-IP car l’adresse client réelle est obscurcie par le proxy fourni par le nuage orange. Ce n’est pas nouveau, cela existe depuis au moins sept ans. Vous pouvez utiliser Cloudflare pour dissimuler l’emplacement de votre serveur, ou agir comme un CDN bon marché pour les téléchargements, mais dans les deux cas, nous vous recommandons de désactiver toutes les fonctionnalités de performance et d’utiliser une règle de page pour activer la mise en cache de votre dossier de téléchargements.

D’accord, mon point était que si Cloudflare n’était pas pris en charge, ils ne prendraient pas la peine d’ajouter officiellement un quelconque support pour cela en premier lieu. Ils n’auraient pas non plus de tutoriels officiels sur la façon de l’utiliser. Certes, ils peuvent déconseiller son utilisation pour X, Y et Z dans certains cas, mais ce n’est pas la même chose que quelque chose qui n’est pas du tout pris en charge. :skull_and_crossbones:

Quel bénéfice la vérification via GTMetrix démontrerait-elle ? Je pense que vous avez une compréhension fondamentale de la façon dont Discourse fonctionne pour citer cela. Discourse n’est pas un site web, c’est une application Javascript. Naviguer sur le site ne sert pas de pages HTML plates au navigateur. L’application Javascript qui se charge dans votre navigateur communique directement avec le serveur, c’est pourquoi certains éléments de page ne semblent pas se recharger entre les clics. La rapidité de ladite application n’est déterminée que par les ressources du serveur et la latence entre le client et le serveur. CloudFlare ne peut pas accélérer votre instance Discourse, et sa présence entre les deux systèmes augmente la latence.

Oui, je comprends que Discourse n’est pas un site web. C’est une plateforme de diffusion de contenu comme toute autre plateforme/logiciel/CMS. Bien sûr, Cloudflare ne peut avoir aucun impact au niveau du serveur, ce qui est particulièrement vrai pour les configurations LAMP. Mais, en fin de compte, chaque plateforme doit éventuellement livrer tout le code côté client (HTML/CSS/JS). Bien sûr, GTmetrix ne peut pas analyser la vitesse côté serveur, mais vous pouvez toujours tirer quelques informations de la sortie finale de votre configuration. En d’autres termes, comment l’utilisateur expérimente le chargement du contenu.

Cloudflare n’accélère pas vraiment un site web autant que cela, pas aussi spectaculairement que les optimisations côté serveur et de meilleures ressources serveur. Nous sommes entièrement d’accord sur ce point. Son objectif principal est l’optimisation du DNS. Il existe des fonctionnalités CDN plus avancées pour les comptes payants, en particulier pour les images, mais je n’ai jamais utilisé de compte payant. Je me demande si ce sont certaines de ces fonctionnalités avancées qui posent le plus de problèmes aux gens et les obligent à demander de l’aide ?

Ce qui précède est basé sur des années d’expérience, pas sur un sentiment. Discourse a toujours des problèmes périodiques avec Cloudflare. Au-delà de l’obscurcissement de l’IP de votre serveur et de l’économie d’un peu de transfert de données pour les téléchargements, il n’y a rien que Cloudflare puisse faire pour accélérer un site Discourse.

Zut. Je savais que j’allais avoir des ennuis pour avoir dit “sentiment”, mais c’est juste une figure de style. Je parle aussi par expérience. :stuck_out_tongue_closed_eyes:

Je ne contesterais pas le fait qu’en tant que Leader de la communauté Discourse officielle, vous avez évidemment plus d’expérience avec Discourse, et vous avez clairement vu toutes sortes de problèmes étranges causés par Cloudflare.

Au-delà de plonger dans les détails de toutes les nuances de Cloudflare/Discourse, je maintiens mon point principal, qui est simplement que Cloudflare n’est pas du tout aussi effrayant que le récit de ce forum le laisserait croire à la plupart des gens.

Cela dit, je comprends aussi la gestion des communautés et évidemment tout le monde n’est pas développeur ni même expert en technologie. En ce sens, je peux comprendre pourquoi être submergé par des gens pensant que Discourse est cassé alors que ce n’est que Cloudflare ou quelque chose de similaire peut devenir ennuyeux.

3 « J'aime »

C’est le but. « non pris en charge » ne signifie pas « impossible », mais « bonne chance avec ça ». Une réponse fréquente à « il y a un bug » est « est-ce que ça disparaît si vous désactivez cloudflare » ?

Si vous voulez vraiment accélérer les choses, utilisez un vrai CDN - - Activer un CDN pour votre Discourse

6 « J'aime »

Ou, vous savez, si quelqu’un veut une option totalement gratuite ou s’il veut simplement utiliser Cloudflare, il peut le faire, sans problème.

Vous citez une recommandation datant de près d’une décennie. Les choses changent. J’aimerais vraiment voir l’un des développeurs officiels se prononcer à ce sujet en 2022. Je suppose qu’il dirait que les choses sont beaucoup plus stables, et aussi, toute recommandation concernant le fait de ne pas toucher au JS est probablement la recommandation pour tous les CDN, pas seulement Cloudflare.

Merci de ne pas mentionner les membres de l’équipe, s’ils souhaitent donner leur avis, ils le feront.

3 « J'aime »

???

J’ai tagué le créateur de Discourse. Nous pouvons discuter toute la journée de la position de Discourse en 2022 concernant Cloudflare, mais tant que nous n’aurons pas de réponse directe, il s’agira plus de spéculation que d’une réponse définitive.

Comment saurait-il même que quelqu’un demande son avis pour qu’il puisse intervenir, à moins qu’il ne soit tagué ?

Il y a eu un problème la semaine dernière concernant des personnes qui voyaient des publicités alors qu’elles ne le devraient pas, et il était assez clair que c’était un problème avec Cloudflare. Le désactiver est toujours l’une des premières choses à faire. Beaucoup de personnes qui reçoivent de l’aide ici sont des novices complets et rendre les choses aussi simples que possible est l’objectif. Si cela fonctionne pour vous, c’est excellent. Si vous voulez répondre à vingt messages ou plus par semaine,

Mais ce n’est pas vrai. Si vous utilisez un vrai CDN, Discourse l’utilise uniquement pour les éléments qui devraient être servis par le CDN.

Salut @JammyDodger, je pense qu’il est temps d’avoir une FAQ sur Cloudflare (bien que ce ne soit pas la première fois que je le suggère). Vous pouvez demander à Jeff et Sam de donner leur avis.

4 « J'aime »

Voici le problème. La mise en cache/combinaison/minification casse notoirement le JS, quel que soit le logiciel ou la combinaison de CDN utilisée. J’ai vu ce problème courant avec une douzaine d’autres outils/services. Lorsqu’on traite avec des novices, leur cache de navigateur à lui seul est une source constante de frustration pour leur expliquer. J’ai déjà géré de grandes communautés logicielles ; je suis bien conscient que le même vieux problème revient sans cesse.

Ce que je me demande, c’est si c’est vraiment un problème spécifique à Cloudflare OU si c’est un problème courant que tous les outils d’optimisation ont, où ils peuvent casser le JS, et il se trouve que, en raison de la popularité de Cloudflare, ce problème général est à tort confondu avec un problème de Cloudflare. Cette distinction a-t-elle un sens ?

Quoi qu’il en soit, oui, j’aimerais beaucoup que les développeurs officiels donnent leur avis sur la question et qu’une FAQ actuelle serait très utile. Je reçois beaucoup de résistance, mais je n’essaie pas de causer de problèmes. Il est juste frustrant que la communauté regorge de tant de contradictions à ce sujet ; j’essaie juste de comprendre où en sont vraiment les choses en 2022.

Mais, si je ne peux pas, si nous ne pouvons pas, ce n’est pas grave. Profitez du reste de votre week-end à tous. Je vais laisser le pauvre :horse: tranquille maintenant.

2 « J'aime »

Non, ce n’est pas vrai. Nous rencontrons très fréquemment des problèmes avec Cloudflare en combinaison avec Discourse.

Il n’y a pas de chose telle que le « support ». Mais si vous ne savez pas ce que vous faites, cela peut causer des problèmes, et même si vous savez ce que vous faites, vous pouvez rencontrer des problèmes inattendus.

Les avantages en termes de performances de Cloudflare, s’il y en a, seront minimes. La plupart des ressources servies par Discourse sont bien compressées et immuables (c’est-à-dire qu’elles sont mises en cache par le navigateur pendant très longtemps). La plupart des autres contenus ne sont pas mis en cache car il s’agit de données d’application personnalisées.

Cela dit, Cloudflare peut être très utile pour la protection contre les attaques DDoS.

5 « J'aime »

Ce serait apprécié car nous avons des opinions mitigées de la part de différents utilisateurs :person_shrugging:

1 « J'aime »

Nous avons une FAQ pour Cloudflare et comment la configurer (ou non) pour Discourse. Elle s’applique également aux instances auto-hébergées.

6 « J'aime »

Je ne doute pas de cela, mais je pense que vous avez manqué la distinction que j’essayais de clarifier. Est-ce réellement, spécifiquement Cloudflare qui pose problème, ou est-ce vraiment juste le fait que les outils d’optimisation de cette nature peuvent facilement casser le JS en général ? Et la plupart des gens utilisent Cloudflare par hasard en raison de sa popularité, créant une fausse confusion.

Ce serait comme blâmer Gmail ou GoDaddy pour des problèmes inhérents à tous les services d’e-mail ou d’hébergement.

Et s’il existait un autre CDN plus populaire que Cloudflare, vous verriez tout autant de demandes de support étranges concernant ce service.

Même si vous n’êtes pas d’accord, comprenez-vous ce que je veux dire ?

3 « J'aime »

Puisque nous devons éviter certains paramètres, et que les utilisateurs de meta ont dit des choses comme

Tout ce que CloudFlare peut faire pour vous est de masquer votre IP et d’agir comme un CDN pour vos téléchargements. Les avantages sont minimes

et

Les avantages de performance de Cloudflare, s’il y en a, seront faibles.

Existe-t-il une réponse définitive et simple à la question « Sans aucun paramètre de vitesse activé, Cloudflare offre-t-il un avantage par rapport à Bunny CDN ou Stackpath (ou à tout autre CDN « normal », je suppose) » ?

J’hésite encore entre Bunny, qui réduirait considérablement mes coûts CDN actuels (Stackpath), et Cloudflare, qui dans mon cas serait gratuit (le propriétaire du domaine peut ajouter mon forum à son compte entreprise).

Aussi, des choses que je ne comprends pas parce que je ne suis pas un expert en technologie.

2 « J'aime »

Il ne s’agit pas seulement de casser le JS. Il s’agit aussi de proxifier et de rendre le port 80 inaccessible, de casser LetsEncrypt, et de certains de ces services qui mettent en cache plus qu’ils ne devraient.

Étant donné que Cloudflare est le plus grand de ces « outils d’optimisation de cette nature », et qu’il est répandu, populaire et gratuit, c’est celui autour duquel la plupart des discussions se concentrent. Mais oui, vous avez raison. C’est un problème des outils comme celui-ci en général.

Donc, oui, d’accord.

Les sujets de ce type ont tendance à être un peu dangereux par nature car les gens (surtout dans le groupe cible « problème ») n’ont pas tendance à bien lire. C’est comme poster dans un sujet sur les dangers de la toxicomanie ou de l’abus d’alcool et prétendre « non les gars, ce n’est pas seulement un problème de drogues et d’alcool, j’utilise des drogues sans aucun problème, et n’oubliez pas les gens : l’abus de toute substance est dangereux ». (Oui, je sais. Chaque métaphore a ses limites, mais c’est le mieux que j’ai pu trouver).

Et nous pouvons dire à quel point les choses sont dangereuses aussi fort que nous le voulons, mais les gens l’utiliseront quand même.
C’est pourquoi nous avons créé une FAQ :wink:

10 « J'aime »

Un nouveau guide FAQ semble être une excellente idée. Le lien Communiteq n’était pas très solide.

Ici, sur ce forum, certaines personnes établissent des règles générales « Niveau de cache : Ignorer, Désactiver les performances », cependant, elles autorisent Cloudflare à mettre en cache des images ou du CSS. Je n’ai pas vu de réponse officielle pour savoir si c’est un oui ou un non…

Au lieu de dire de ne pas utiliser Cloudflare, puis de gérer les cas problématiques, il serait peut-être bon de proposer ce qui doit être fait et ce qui ne doit pas l’être. Ensuite, un lien rapide vers ce message répondra à ces questions à l’avenir.

Juste l’opinion d’un homme.

1 « J'aime »

@RGJ — Merci ! Beaucoup de gens ne verront peut-être pas ni ne comprendront l’intérêt de ma distinction ou quelle différence cela fait, mais cela m’apporte une grande clarté. Je suis très frustré sans clarté, car sans cette base initiale solide, je ne sais pas quelle voie suivre pour me concentrer davantage et mieux comprendre un sujet particulier.

1 « J'aime »

Si vous avez des commentaires spécifiques, j’aimerais beaucoup les entendre.

En ce qui concerne la mise en cache, je dirais que ce n’est pas un « oui » ou un « non », mais plutôt un « bof » :

1 « J'aime »