Mi ci è voluto un’eternità per capire come fare tutto questo, quindi ho voluto creare questa guida per rendere le cose più semplici per gli altri. Servire le immagini in questo modo dovrebbe rendere il tuo sito più veloce nel caricamento. La mia configurazione Discourse combina un droplet DigitalOcean, BackBlaze B2 S3, BunnyCDN e la versione gratuita di Cloudflare.
Ho scelto questi servizi dopo aver fatto alcune ricerche su affidabilità, prezzi e benchmark. Sembravano le opzioni migliori per me. Cloudflare aiuta con la sicurezza, ma rallenterà leggermente il sito, almeno per quanto ne so, quindi dovresti valutarlo. Backblaze ha partnership sia con Cloudflare che con Bunny che consentono il trasferimento dati gratuito.
Anche se Cloudflare è definito una CDN, non funziona come le CDN tradizionali e probabilmente non funzionerà da solo per configurare S3 con Discourse. Potresti aver bisogno di un altro provider CDN; BunnyCDN funziona bene per me. Se qualcuno ci è riuscito solo con Cloudflare, fatemelo sapere ![]()
Come impostare gli upload su S3:
Per prima cosa, devi registrarti su Backblaze, creare dei bucket e inserire i dettagli nelle impostazioni di Discourse:
Poi registrati su BunnyCDN e segui questa guida:
bunny.net - The Global Edge Platform that truly Hops (link di referral, ottengo un credito di 20$ sulla mia fattura)
Dopo aver creato la tua zona di pull su BunnyCDN, devi ottenere l’URL corretto da inserire nelle impostazioni di amministrazione di Discourse per “s3 cdn url”. Vai alla tua dashboard bunnycdn > pull zones > gestisci pull zones > clicca sulla tua zona > copia l’URL accanto a “host name”.
L’URL dovrebbe essere simile a questo: example.b-cdn.net, ma dovrai assicurarti di inserire https:// davanti, così: https://example.b-cdn.net
Salva le modifiche nell’area delle impostazioni di amministrazione di Discourse.
Premi Ctrl+F5 due volte nel tuo browser sul tuo sito Discourse.
Esegui un test caricando un’immagine nel compositore di testo di Discourse. Ispeziona l’elemento dell’immagine di test o visualizza l’origine dell’immagine per assicurarti che funzioni. L’URL dovrebbe essere diverso dal tuo dominio normale, qualcosa come example.b-cdn.net / nomefile.
Ora, ogni volta che qualcuno carica un’immagine, questa sarà nel tuo bucket Backblaze e non occuperà spazio sul tuo droplet DigitalOcean ![]()
Backup degli upload su S3
Se vuoi configurare i backup di Discourse per essere salvati nel tuo bucket Backblaze, devi fare quanto segue:
Nella guida che ho pubblicato più in alto in questo thread, presta attenzione a come spiega che servono due bucket separati. Un bucket è pubblico, questo è il tuo bucket di upload per gli utenti che caricano immagini sul tuo forum. L’altro bucket è privato, questo è il tuo bucket per i backup. È importante eseguire backup automatizzati di Discourse nel caso in cui qualcosa si rompa, così potrai caricare il backup e risolverlo.
Sulla tua dashboard BunnyCDN, dovresti creare una seconda zona di pull. La tua prima zona di pull era per gli upload, questa nuova zona sarà per i backup.
dashboard bunnycdn > pull zones > aggiungi zona di pull
Segui la stessa guida a cui ho linkato prima, “Come accelerare la consegna dei file Backblaze B2 con BunnyCDN” di BunnyCDN, ma questa volta collegherai la nuova zona di pull al tuo bucket di backup invece che a quello degli upload.
Consiglio di utilizzare il “livello ad alto volume 5$/TB” nella pagina di creazione della zona di pull di BunnyCDN; penso che i backup non abbiano bisogno del livello più costoso/più veloce “livello standard 10$/TB” che ho usato per il mio bucket di upload.
Imposta le tue impostazioni di backup nell’area delle impostazioni di amministrazione di Discourse. “backup location” dovrebbe essere impostato su S3 e “s3 endpoint” dovrebbe puntare a quello che hai su Backblaze, qualcosa come questo:
s3.us-west-002.backblazeb2.com
CTRL+F5 due volte sul tuo sito per pulire la cache
Avvia un backup e attendi che termini. Poi aspetta 5 minuti e controlla la cartella dei backup su Backblaze; dovresti vedere il nuovo backup lì.
Migrazione delle immagini più vecchie:
Questo passaggio è opzionale ma consigliato, specialmente se hai poco spazio di archiviazione sul tuo server. Quindi hai tutto configurato per i nuovi caricamenti di immagini, ma anche le immagini più vecchie possono essere trasferite nei tuoi bucket. Per far funzionare questo processo, devi seguire quanto segue:
Configurazione della CDN Cloudflare
Questo passaggio è opzionale poiché Backblaze ha ottenuto una partnership che rende gratuito anche il trasferimento dati verso Bunny, ma per una sicurezza aggiuntiva e altre funzionalità, puoi far passare i dati prima attraverso Cloudflare e poi far sì che Bunny estragga i dati da dove Cloudflare li lascia cadere.
https://help.backblaze.com/hc/en-us/articles/217666928-Using-Backblaze-B2-with-the-Cloudflare-CDN


