¿Entonces los archivos no se sincronizarán con mi sistema, CloudFront solo los almacena en caché? ¿Tengo razón?
Sí, eso es correcto. La CDN obtiene de tu sitio solo los recursos solicitados.
Discourse también enviará a S3 los recursos estáticos (como CSS y JavaScript) así como las cargas.
¿Es posible usar reglas de Cloudflare para almacenar en caché activos estáticos como CSS y JavaScript?
Sí, lo usamos de esa manera y funciona bien. Solo ten mucho cuidado de desactivar cualquier optimización de JavaScript. Puedes ver nuestra configuración aquí:
Gracias por la respuesta.
Ya he añadido la segunda y la tercera regla, pero no entiendo la primera. ¿Para qué sirve la redirección 301?
No lo necesitas; está en la descripción.
Gracias por la respuesta. ¿Qué pasa con los recursos estáticos como CSS y JavaScript? ¿Existe alguna regla posible para CSS y JavaScript?
No lo probé. No estoy seguro de que funcione. Al menos tendrías que borrar la caché de Cloudflare después de cada reconstrucción.
Para mí está bien limpiar la caché después de cada reconstrucción. ¿Qué más podría salir mal si establezco una regla para almacenar en caché todo en https://myforum.com/assets/? ¿Esto afectará de alguna manera el inicio de sesión de los usuarios? Si me das luz verde, lo probaré durante una semana y te informaré. Todavía tengo una regla sin usar.
Solo para aclarar, ¿es correcto que no utilizamos este campo (ni tampoco la URL de la CDN) si estamos usando la CDN de Cloudflare?
He configurado cloudflare.template en app.yml según la documentación.
¿Se necesita alguna configuración adicional si se usa Cloudflare?
¡Acabo de usar StackPath con éxito como CDN! ¡Funciona como se esperaba!
¿Sigue siendo así hoy en día?
De 2019:
Parece que tenemos que tener especial cuidado y que perdemos algunos de los beneficios de Cloudflare.
De 2020:
De 2021:
Entonces, ¿es Cloudflare fiable y eficiente con Discourse hoy en día? ¿Desactivar la función “Rocket Loader” minimiza los beneficios?
Estaba pensando en pasar de Stackpath a Bunny CDN, pero el propietario del dominio de mi foro y exadministrador tiene una cuenta de Cloudflare Enterprise (es el propietario de tinyURL, por cierto) en la que podría añadir el dominio de forma gratuita (Looking for a decrease in the forum fees in the future - #6 by Gilby - Forum Feedback - Unicyclist.com).
Entonces, me pregunto si es correcto, indoloro y eficaz usar Cloudflare en lugar de Bunny CDN.
Si tiene muchas imágenes, lo que gastará en aumentar el SSD conectado directamente será mucho más costoso que los costos equivalentes de S3.
S3 necesita una CDN delante para ser rentable, ya que se le factura por la entrada y salida, pero sigue siendo mucho más barato que simplemente añadir más SSD de alta velocidad. CloudFlare puede estar delante de S3, pero el almacenamiento en caché de activos es realmente la única función que puede utilizar de forma fiable. Poner CloudFlare entre el cliente y el servidor de aplicaciones también aumentará el número de saltos y la latencia de la aplicación. No es una solución mágica.
No tenemos muchas imágenes. El objetivo de la CDN sería que los activos se carguen rápidamente para todos los usuarios, ya que nuestra comunidad es internacional (principalmente EE. UU. y Europa).
Usamos S3, pero solo para almacenar copias de seguridad.
Pregunta rápida. ¿Es obligatorio volver a hornear después de cambiar nuestra CDN? ¿O es solo si la URL de la CDN es diferente? ¿O no es necesario en absoluto?
edición: ¿o simplemente es posible reemplazar las URL antiguas en las publicaciones horneadas por las nuevas con un script de rails?
Por ejemplo, si tengo una publicación que contiene:
<img class="ytp-thumbnail-image"
src="https://f5i4i8k5.stackpathcdn.com/uploads/default/original/3X/f/3/f3bc5ab19cc0394f33fd008e90ca06e081886a0b.jpeg"
title="Riding a unicycle part 76: Sullivan Canyon - Los Angeles"
width="480"
height="360"
loading="lazy"
style="aspect-ratio: 480 / 360;"
>
¿Podría hacer una búsqueda y reemplazo de cadenas de f5i4i8k5.stackpathcdn.com a newcdn.unicyclist.com sin romper nada? Parece seguro, pero quiero estar seguro de lo que hago.
No me importa volver a hornear todas mis publicaciones, pero el problema que enfrenté la primera vez es que tengo miles de videos de YouTube incrustados, y mi IP fue incluida en la lista negra de YouTube durante el horneado debido a demasiadas solicitudes a YouTube.
Entonces, si hay una alternativa segura a volver a hornear todas las publicaciones y enfrentar el mismo problema molesto, preferiría optar por la alternativa…
Hay una tarea de rake que realizará un reemplazo. Creo que ejecutarla es seguro y una buena idea. Reemplazar una cadena en todas las publicaciones es lo que estás buscando, creo.
Hola Jay,
No estoy seguro de usar la tarea de rake.
Las URL de la CDN parecen estar presentes en los campos cooked en lugar de los campos raw (a menos que el mensaje se haya enviado por correo electrónico).
Por lo que entiendo, post:remap busca la cadena solo en el campo raw.
Si reemplazar las URL de la CDN tanto en los campos raw como en los cooked es seguro, supongo que debería optar por un script personalizado de rails.
Tienes razón. Hay otra… cosa… que reemplazará una cadena en todos los campos de la base de datos. Esa es la que buscas. Lo siento, pero no puedo encontrarla ahora mismo. Hay algunos temas sobre la migración de un s3, pero no parece haber un howto.
¡Gracias por esta pista!
Supongo que es esto?
DbHelper.remap('from', 'to')
Encontrado en Rebaking old posts won't pull new S3 CDN URL after S3 bucket rename - #10 by Brad_Wood
Y usado aquí:
Si es una alternativa segura a un rebake al cambiar nuestro servicio CDN, un howto podría ser útil.
Oh, qué bien. Gracias por hacérmelo saber. Pensé que sería suficiente para que lo encontraras. Me alegro de que lo hayas conseguido.