Discourse y Cloudflare

Hay mucho debate en esta comunidad sobre el uso de Cloudflare. Algunas personas dicen que funciona bien sin ningún problema y otras advierten que el cielo se caerá si lo usan. De cualquier manera, la mayor parte de esta información está muy desactualizada, desde hace 2 años hasta casi una década.


Personalmente, estoy usando Cloudflare con Discourse aquí en 2022 sin ningún problema.

Estoy minificando/almacenando en caché todas las páginas y HTML/CSS/JS, con compresión Brotli. Solo he excluido /admin de las optimizaciones de rendimiento de Cloudflare por preferencia personal.

No desactivé el Rocket Loader, pero ya estaba desactivado por defecto. El único otro cambio que hice fue agregar:

- "templates/cloudflare.template.yml"

a la configuración de mi app.yml para restaurar las IPs de los usuarios.

También vale la pena mencionar que el sitio funcionó bien incluso antes de que hiciera un solo ajuste.

7 Me gusta

Mientras reconozcas que lo que estás haciendo no tiene ningún soporte, está bien.

CloudFlare continúa ajustando sus optimizaciones y, a veces, no causan problemas, y otras veces pueden paralizar un sitio. Para la mayoría, la idea de que su sitio se rompa sin ninguna acción por su parte sería bastante desagradable.

Si alguna vez has visto una reconstrucción, ya sabrás que la minificación ya ocurre dentro de Discourse. CloudFlare no minifica el sitio mejor de lo que ya lo hace por sí mismo. ¿Has medido el rendimiento con y sin CF habilitado?

Y no olvides que una vez que la aplicación JavaScript se carga en el navegador, CloudFlare en realidad está ralentizando tu sitio. Cada onza de tráfico entre la aplicación y el servidor ahora también tiene que atravesar la red de CloudFlare, aumentando el número de saltos de red y con ello la latencia.

Pero si te está funcionando, genial. Solo asegúrate de desactivarlo antes de pedir soporte, porque es el primer (y más probable) culpable.

10 Me gusta

Tengo la sensación de que la mayor parte (si no toda) del miedo a usar Cloudflare con Discourse se basa en problemas de hace años.

Tanto Cloudflare como Discourse han avanzado mucho en la última década.

Tengo una amplia experiencia con problemas de caché en general, y es cierto que en los primeros días, Cloudflare rompió muchos scripts, pero se ha comportado bastante bien durante muchos años.

Algunas de las herramientas de caché más agresivas definitivamente rompen cosas y requieren mucha optimización para que funcionen correctamente. Ese sentimiento en general sigue siendo válido.

Sin embargo, ¿estás seguro de que la afirmación de que Discourse no admite Cloudflare sigue siendo precisa? Discourse literalmente tiene mecanismos incorporados para manejar Cloudflare.

De todos modos, no, no hice un antes y un después en https://gtmetrix.com/, pero para mí eso es algo irrelevante porque tengo otras razones para usar Cloudflare además de la velocidad, así que a menos que causara una disminución drástica (o incluso notable) en la velocidad, lo usaría de todos modos.

Pensamiento final: Sí, cada vez que usas una herramienta de CDN/caché/minificación/etc., especialmente si tienes poca experiencia, puede romper cosas. Eso es cierto para todos los sitios web, independientemente de cómo estén construidos. Pero la idea de que Cloudflare está casi garantizado que causará estragos en todos los sitios de Discourse parece información desactualizada que necesita dejar de ser perpetuada.

2 Me gusta

La plantilla de CloudFlare no es una novedad y, si te tomas el tiempo de mirar el código fuente, verás que su único propósito es obtener los rangos de IP de ellos y modificar nginx para asegurar que se esté considerando CF-Connecting-IP como la verdadera dirección del cliente, ya que la dirección real está oculta por el proxy que proporciona la nube naranja. No es algo nuevo, ha existido durante al menos siete años. Puedes usar Cloudflare para ocultar la ubicación de tu servidor o actuar como una CDN económica para las cargas, pero en ambos casos te recomendamos que desactives todas las funciones de rendimiento y uses una regla de página para habilitar el almacenamiento en caché en tu carpeta de cargas.

¿Qué beneficio demostraría una prueba a través de GTMetrix? Creo que tienes una incomprensión fundamental de cómo funciona Discourse para citar eso. Discourse no es un sitio web, es una aplicación Javascript. Navegar por el sitio no sirve páginas HTML planas al navegador. La aplicación Javascript que se carga en tu navegador habla directamente con el servidor, por eso ciertos elementos de la página no parecen recargarse entre clics. La agilidad de dicha aplicación solo está determinada por los recursos del servidor y la latencia entre el cliente y el servidor. CloudFlare no puede acelerar tu instancia de Discourse, y su presencia entre los dos sistemas aumenta la latencia.

Lo anterior se basa en años de experiencia, no en una sensación. Discourse todavía tiene problemas periódicos con Cloudflare. Más allá de ocultar la IP de tu servidor y ahorrar un poco de transferencia de datos para las cargas, no hay nada que Cloudflare pueda hacer para acelerar un sitio Discourse.

5 Me gusta

La plantilla de CloudFlare no es una novedad, y si te tomas el tiempo de mirar el código fuente, verás que su único propósito es obtener sus rangos de IP y modificar nginx para asegurar que se esté mirando a CF-Connecting-IP, ya que la dirección real del cliente queda oculta por el proxy que proporciona la nube naranja. No es algo nuevo, lleva existiendo al menos siete años. Puedes usar Cloudflare para ocultar la ubicación de tu servidor, o actuar como una CDN barata para subidas, pero en ambos casos te recomendaríamos deshabilitar todas las funciones de rendimiento y usar una regla de página para habilitar el almacenamiento en caché en tu carpeta de subidas.

De acuerdo, mi punto era que si Cloudflare no tuviera soporte, no se molestarían en añadir ningún tipo de soporte oficial en primer lugar. Tampoco tendrían tutoriales oficiales sobre cómo usarlo. Es cierto que pueden recomendar no usarlo por X, Y y Z en algunos casos, pero eso no es lo mismo que algo que no tenga soporte. :skull_and_crossbones:

¿Qué beneficio demostraría la prueba a través de GTMetrix? Creo que tienes una incomprensión fundamental de cómo funciona Discourse para citar eso. Discourse no es un sitio web, es una aplicación Javascript. Navegar por el sitio no sirve páginas HTML planas al navegador. La aplicación Javascript que se carga en tu navegador habla directamente con el servidor, por eso ciertos elementos de la página no parecen recargarse entre clics. La agilidad de dicha aplicación solo está determinada por los recursos del servidor y la latencia entre el cliente y el servidor. CloudFlare no puede acelerar tu instancia de Discourse, y su presencia entre los dos sistemas aumenta la latencia.

Sí, entiendo que Discourse no es un sitio web. Es una plataforma para entregar contenido como cualquier otra plataforma/software/CMS. Por supuesto, Cloudflare no puede impactar nada a nivel de servidor, lo cual es especialmente cierto en configuraciones LAMP. Pero, en última instancia, cada plataforma tiene que entregar eventualmente todo el código del lado del cliente (HTML/CSS/JS). Por supuesto, GTmetrix no puede escanear la velocidad del lado del servidor, pero aún así puedes obtener algunas cosas sobre la salida final de tu configuración. En otras palabras, cómo el usuario experimenta la carga del contenido.

Cloudflare en realidad no acelera mucho un sitio web, ni de forma tan drástica como lo hacen las optimizaciones del lado del servidor y mejores recursos del servidor. Estamos totalmente de acuerdo en eso. Su enfoque principal es la optimización de DNS. Hay algunas características de CDN más avanzadas para cuentas de pago, especialmente en lo que respecta a las imágenes, pero nunca he usado una cuenta de pago. Me pregunto si son algunas de esas características avanzadas las que causan problemas y requieren ayuda.

Lo anterior se basa en años de experiencia, no en una sensación. Discourse todavía tiene problemas periódicos con Cloudflare. Más allá de ocultar la IP de tu servidor y ahorrar un poco de transferencia de datos para las subidas, no hay nada que Cloudflare pueda hacer para acelerar un sitio Discourse.

Maldita sea. Sabía que me iban a dar guerra por decir “sensación”, pero es solo una figura retórica. Yo también hablo por experiencia. :stuck_out_tongue_closed_eyes:

No cuestionaría el hecho de que, como Líder en la comunidad oficial de Discourse, obviamente tienes más experiencia con Discourse, y claramente has visto todo tipo de problemas extraños causados por Cloudflare.

Aparte de meternos en los detalles de todos los matices de Cloudflare/Discourse, sigo defendiendo mi punto principal, que es simplemente que Cloudflare no es tan aterrador como la narrativa en este foro haría creer a la mayoría.

Dicho esto, también entiendo la gestión de comunidades y, obviamente, no todo el mundo es desarrollador o siquiera experto en tecnología. En ese sentido, puedo ver por qué ser inundado por personas que piensan que Discourse está roto cuando solo es Cloudflare o algo similar podría volverse molesto.

3 Me gusta

Ese es el punto. “No compatible” no significa “imposible”, sino “buena suerte con eso”. Una respuesta frecuente a “hay un error” es “¿desaparece si desactivas cloudflare?”.

Si quieres acelerar las cosas, usa una CDN real - - Habilitar una CDN para tu Discourse

6 Me gusta

O, ya sabes, si alguien quiere una opción completamente gratuita o de lo contrario solo quiere usar Cloudflare, puede hacerlo, sin problema.

Estás citando una recomendación de hace casi una década. Las cosas cambian. Me gustaría mucho ver a uno de los desarrolladores oficiales opinar sobre esto en 2022. Supongo que diría que las cosas son mucho más estables y, además, cualquier recomendación sobre no meterse con JS es probablemente la recomendación para todas las CDN, no solo para Cloudflare.

Por favor, no etiquetes a los miembros del equipo, si quieren opinar, lo harán.

3 Me gusta

???

Etiqueté al creador de Discourse. Podemos debatir todo el día sobre la postura de Discourse en 2022 con respecto a Cloudflare, pero hasta que no lo escuchemos directamente de la fuente, será más especulación que una respuesta definitiva.

¿Cómo podría saber que alguien está pidiendo su opinión para poder intervenir, a menos que sea etiquetado?

Hubo un problema la semana pasada que tuvo que ver con que las personas vieran anuncios cuando no debían, y estaba bastante claro que era un problema con Cloudflare. Desactivarlo es siempre una de las primeras cosas que hacer. Mucha gente que recibe soporte aquí son principiantes completos y el objetivo es hacer las cosas lo más sencillas posible. Si funciona para ti, genial. Si quieres responder a veinte o más publicaciones por semana que

Pero eso no es cierto. Si usas una CDN real, Discourse la usa solo para las cosas que deben ser servidas por la CDN.

Hola @JammyDodger, creo que es hora de una FAQ sobre Cloudflare (aunque no es la primera vez que lo sugiero). Puedes pedirle a Jeff y Sam que opinen.

4 Me gusta

Aquí está el asunto. El almacenamiento en caché/combinación/minificación rompe notoriamente el código JS, independientemente del software o la combinación de CDN que se esté utilizando. He visto este problema común con una docena de otras herramientas/servicios. Al tratar con principiantes, su propia caché del navegador es una molestia constante sobre la que educarlos. He gestionado grandes comunidades de software antes; soy muy consciente del mismo viejo problema que surge una y otra vez.

Lo que me pregunto es, ¿es realmente un problema específico de Cloudflare O es un problema común que todas las herramientas de optimización tienen, donde pueden romper el código JS y simplemente sucede que, debido a la popularidad de Cloudflare, este problema general se confunde erróneamente como un problema de Cloudflare? ¿Tiene sentido esa distinción?

En cualquier caso, sí, me encantaría que los desarrolladores oficiales opinaran sobre esto y una FAQ actual sería muy útil. Estoy recibiendo mucha resistencia, pero no estoy tratando de causar problemas. Es simplemente frustrante que la comunidad esté llena de tantas contradicciones al respecto; solo estoy tratando de llegar al fondo de la situación actual en 2022.

Pero, si no puedo, si no podemos, está bien. Disfruten el resto de su fin de semana todos. Dejaré al pobre :horse: en paz ahora.

2 Me gusta

No, eso no es cierto. Vemos problemas con Cloudflare en combinación con Discourse con mucha frecuencia.

No existe tal cosa como “compatible”. Pero si no sabes lo que estás haciendo, puede y causará problemas, e incluso si sabes lo que estás haciendo, puedes tener problemas inesperados.

Los beneficios de rendimiento de Cloudflare, si los hay, serán pequeños. La mayoría de los activos servidos por Discourse están bien comprimidos e inmutables (es decir, se almacenan en caché en el navegador durante mucho tiempo). La mayoría del otro contenido no se puede almacenar en caché porque son datos de aplicación personalizados.

Dicho esto, Cloudflare puede ser muy útil para la protección contra DDoS.

5 Me gusta

Sería bienvenido ya que tenemos opiniones encontradas de diferentes usuarios :person_shrugging:

1 me gusta

Tenemos una sección de preguntas frecuentes sobre Cloudflare y cómo configurarlo (o no) para Discourse. También se aplica a las instancias autoalojadas.

6 Me gusta

No dudo de eso, pero creo que te perdiste la distinción que intentaba aclarar. ¿Es realmente Cloudflare específicamente el problema, o es realmente solo el hecho de que las herramientas de optimización de esta naturaleza pueden romper fácilmente el JS en general? Y la mayoría de la gente usa Cloudflare por su popularidad, creando una falsa confusión.

Sería como culpar a Gmail o GoDaddy por problemas que son inherentes a todos los servicios de correo electrónico o de alojamiento.

Y si hubiera otra CDN más popular que Cloudflare, verías la misma cantidad de extrañas solicitudes de soporte sobre ese servicio también.

Incluso si no estás de acuerdo, ¿entiendes lo que quiero decir?

3 Me gusta

Dado que debemos evitar ciertas configuraciones, y los meta-usuarios dijeron cosas como

Todo lo que CloudFlare puede hacer por ti es ocultar tu IP y actuar como una CDN para tus subidas. Los beneficios son mínimos

y

Los beneficios de rendimiento de Cloudflare, si los hay, serán pequeños.

¿Hay una respuesta definitiva y sencilla a la pregunta “¿Sin tener habilitada ninguna configuración de velocidad, tiene Cloudflare algún beneficio en comparación con Bunny CDN o Stackpath (o cualquier CDN “normal”, supongo)”?

Todavía estoy dudando entre Bunny, que reduciría mucho mis costos actuales de CDN (Stackpath), y Cloudflare, que en mi caso sería gratuito (el propietario del dominio puede añadir mi foro a su cuenta empresarial).

Además, cosas que no entiendo porque no soy experto en tecnología.

2 Me gusta

No se trata solo de romper el JS. También se trata de proxy y de hacer inaccesible el puerto 80, romper LetsEncrypt, y que algunos de estos servicios guarden en caché más de lo que deberían.

Dado que Cloudflare es el mayor de estas “herramientas de optimización de esta naturaleza”, y es generalizado, popular y gratuito, es en el que la mayoría de las discusiones se centran. Pero sí, tienes razón. Es un problema de herramientas como esta en general.

Así que, sí, de acuerdo.

Temas como estos tienden a ser un poco peligrosos en su naturaleza, ya que las personas (especialmente en el grupo objetivo del “problema”) no tienden a leer muy bien. Es como publicar en un tema sobre los peligros del abuso de drogas o alcohol y afirmar “no, chicos, no es solo un problema de drogas y alcohol, yo uso drogas sin ningún problema, y no olviden gente: el uso excesivo de cualquier sustancia es peligroso”. (Sí, lo sé. Cada metáfora llega hasta cierto punto, pero es lo mejor que pude pensar).

Y podemos decir lo peligrosas que son las cosas tan fuerte como queramos, pero la gente las usará de todos modos.
Por eso hicimos un FAQ :wink:

10 Me gusta

Una nueva guía de preguntas frecuentes suena como una gran idea. El enlace de Communiteq no era muy sólido.

Aquí en este foro, algunas personas están creando reglas generales Nivel de caché: Omitir, Deshabilitar rendimiento, sin embargo, están permitiendo que Cloudflare almacene en caché imágenes o CSS. No he visto una respuesta oficial sobre si eso es un sí o un no…

En lugar de decir que no usen Cloudflare y luego lidiar con casos problemáticos, quizás sería bueno pronunciarse sobre lo que se debe y no se debe hacer. Luego, una referencia rápida a esa publicación en el futuro responderá a esas preguntas.

Solo la opinión de un hombre.

1 me gusta

@RGJ — ¡Gracias! Mucha gente puede no ver ni entender el punto de mi distinción o qué diferencia hace, pero para mí aporta una gran claridad. Me frustro mucho sin claridad, porque sin esa base inicial y sólida, no sé qué camino tomar para enfocarme más y comprender mejor un tema en particular.

1 me gusta

Si tienes algún comentario específico, me encantaría escucharlo.

Con respecto al almacenamiento en caché, diría que no es un “sí” o un “no”, sino más bien un “meh”:

1 me gusta