Railgun assicura che la connessione tra il server di origine e la rete Cloudflare è più veloce possibile.
Railgun comprime oggetti Web in precedenza non memorizzabili nelle cache. Per farlo si affida a tecniche simili a quelle usate nella compressione di video di alta qualità. Ciò può determinare un ulteriore aumento delle prestazioni.
Railgun accelera la connessione tra ciascun datacenter Cloudflare e un server di origine in modo che le richieste che non possono essere servite dalla cache Cloudflare siano comunque servite molto velocemente.
Circa i 2/3 delle richieste ai siti su Cloudflare sono serviti direttamente dalla cache del datacenter fisicamente più vicino all'utente di Internet. Cloudflare dispone di datacenter in tutto il mondo e ciò significa che le pagine Web, ad esempio, del Bangalore, di Brisbane, Birmingham o Boston vengono visualizzate rapidamente anche se il server Web di origine è a migliaia di chilometri di distanza.
La capacità di Cloudflare di fare in modo che sembri che un sito Web sia ospitato in una posizione vicina all'utente è la chiave per l'accelerazione della navigazione nel Web. Un sito Web può essere ospitato negli USA, ma potrebbe essere visualizzato principalmente da utenti del Regno Unito. Con Cloudflare, il sito viene servito da un datacenter del Regno Unito, eliminando il significativo ritardo dovuto alla velocità della luce.
Ma l'altro 1/3 di richieste fatte a Cloudflare deve essere inviato al server di origine per l'elaborazione. Questo accade perché molte pagine Web non sono inseribili nella cache. Ciò può essere dovuto a una configurazione errata o, più comunemente, al continuo aggiornamento o alla personalizzazione della pagina Web.
Ad esempio, è difficile memorizzare nella cache l'home page del New York Times per un certo periodo di tempo perché le notizie cambiano continuamente e l'essere sempre aggiornati è fondamentale per tale società. E per un sito Web personale come Facebook, ogni utente visualizza una pagina diversa anche se l'URL potrebbe essere lo stesso per utenti diversi.
Railgun utilizza una serie di tecniche per accelerare e memorizzare nella cache le pagine Web precedentemente non inseribili nella cache in modo che, anche anche quando è necessario consultare il server di origine, le pagine Web vengano consegnate rapidamente. Questo funziona anche per pagine che cambiano di continuo (come siti di notizie) o per contenuti personalizzati.
La ricerca Cloudflare ha dimostrato che, anche se molti siti non possono essere memorizzati nella cache, in realtà cambiano molto lentamente. Ad esempio, l'home page del New York Times cambia continuamente durante la giornata per via delle notizie sempre aggiornate, ma l'HTML boilerplate della pagina rimane per lo più invariato e molte storie rimangono in prima pagina per tutto il giorno.
Per i siti personalizzati il codice HTML boilerplate è lo stesso con solo piccoli frammenti di contenuti (come ad esempio la timeline di Twitter o il News Feed di Facebook di un utente) che cambiano. Questo significa che, se è possibile rilevare le parti di una pagina che restano invariate e trasmettere solo quelle modificate, esiste una grande opportunità per comprimere le pagine Web da trasmettere.
Quando viene effettuata una richiesta a un server Cloudflare per una pagina Web che non è nella cache, Cloudflare stabilisce una connessione HTTP con il server di origine per richiedere la pagina. Tale connessione HTTP viene accelerata e protetta da Railgun.
Railgun è costituito da due componenti software: Listener e Sender. Railgun Listener è installato nell'host Web in un server di origine. È un componente software in esecuzione in un server standard che serve le richieste da Cloudflare utilizzando il protocollo Railgun binario crittografato.
Railgun Sender è installato in tutti i datacenter Cloudflare a livello mondiale e mantiene le connessioni con i Railgun Listener.
Quando arriva una richiesta HTTP che deve essere gestita da un server di origine, Cloudflare determina se è destinata a un sito Web abilitato a Railgun. Se sì, la richiesta HTTP viene inoltrata al relativo Railgun Sender per la gestione, ma in caso contrario viene utilizzato il codice HTTP standard.
Railgun Sender trasforma la richiesta in un blocco binario compresso che viene trasmesso al corrispondente Railgun Listener. Railgun Listener gestisce la richiesta ed esegue una richiesta HTTP per il server di origine. Dal punto di vista del server di origine, è come se la connessione HTTP provenisse direttamente da Cloudflare ma, poiché proviene dall'interno dell'infrastruttura del partner di hosting, la richiesta non subirà ritardi dovuti alla latenza.
Railgun usa un nuovo meccanismo di memorizzazione nella cache che si basa sul confronto delle versioni delle pagine per determinare cosa è necessario trasmettere da Internet a Railgun Sender. Grazie a questo meccanismo, Cloudflare è in grado di raggiungere la compressione del 99,6% tipica (riducendo, ad esempio, una pagina Web da 100.000 a 400 byte) e una velocità superiore al 700%. Infatti, i dati compressi spesso sono così piccoli che l'utilizzo del protocollo Railgun binario è adatto a un singolo pacchetto TCP.
Le connessioni Railgun sono protette dal protocollo TLS, in modo che le richieste inviate per loro tramite non possano essere intercettate. La connessione è protetta da certificati che impediscono gli attacchi on-path. La connessione TCP tra Cloudflare e il server di origine rimane attiva in modo che possa essere riutilizzata per le richieste successive, eliminando il lento riavvio di una connessione TCP.
Le richieste Railgun vengono moltiplicate nella stessa connessione e possono essere gestite in modo asincrono. Ciò significa che Railgun è in grado di gestire numerose richieste simultanee senza bloccare e aumentare l'uso della connessione TCP.
Railgun Listener è un singolo file eseguibile la cui unica dipendenza è un'istanza Memcache in esecuzione. Funziona su sistemi Linux a 64 bit come daemon.
Il listener richiede una singola porta aperta su Internet per il protocollo Railgun in modo che i datacenter Cloudflare possano contattarlo. Inoltre, richiede l'accesso al sito Web tramite HTTP e HTTPS. Idealmente, il listener è installato su un server con accesso veloce a Internet e bassa latenza. L'installazione può semplicemente avvenire tramite un file .deb o RPM. Per istruzioni dettagliate sull'installazione di Railgun, consulta la documentazione di Railgun.
Railgun è disponibile per i clienti che hanno sottoscritto un piano Business o Enterprise Cloudflare oppure per quelli con un partner ottimizzato per l'hosting.
Configura un dominio in meno di 5 minuti mantenendo il tuo provider di hosting e senza dover modificare il codice.
Vendite
Introduzione
Community
Sviluppatori
Supporto
Azienda