Railgun 可加速每個 Cloudflare 資料中心與來源伺服器之間的連線,以便無法透過 Cloudflare 快取提供服務的要求仍然可以達到極快的服務執行速度。
Cloudflare 上大約 2/3 的網站要求直接透過實體上最接近網站瀏覽者的資料中心中的快取提供服務。 Cloudflare 的資料中心遍佈全球,這表示無論您在邦加羅爾、布里斯本、伯明罕還是波士頓,即使實際的來源伺服器遠隔千里,也能快速傳遞網頁。
Cloudflare 是否能使網站在代管時顯得接近網站瀏覽者,是加速網站瀏覽的關鍵。網站可能在美國代管,但網站瀏覽者主要在英國存取。透過 Cloudflare,將透過英國資料中心為網站提供服務,消除了由光速造成的代價高昂的延遲。
但其他 1/3 對 Cloudflare 的要求必須被傳送至來源伺服器以供處理。這是因為許多網頁無法快取。這可能歸因於組態錯誤,或者 (此情可更常見) 頻繁變更網頁或個人化網頁。
例如,很難快取 New York Times 任何時間的首頁,這是因為新聞瞬息萬變,即時更新對其業務至關重要。對於諸如 Facebook 這樣的個人化網站,儘管不同使用者擁有的同一個 URL ,但每個使用者所瀏覽的頁面卻不同。
Railgun 採用一組技術來加速和快取之前無法快取的網頁,這樣即便在必須查閱來源伺服器時,也能快速傳遞網頁內容。這甚至對快速變更新網站等頁面或個人化內容也有效。
Cloudflare 參考資料顯示,即便無法快取諸多網站,其實際變更速度也非常緩慢。例如,New York Times 首頁一整天都會變更,因為總有新聞故事需要編寫,但頁面的樣板 HTML 會基本保持不變,而且許多故事一整天都保持在新聞頭版。
對於個人化網站,樣板 HTML 只有少量內容 (例如個人 Twitter 時間表或 Facebook 新聞餵送) 變更是一樣的。如果可以偵測到不變更的頁面部分且僅傳輸差異的部分,壓縮用於傳輸的網頁代表將有一個巨大商機。
對不在快取中的網頁的 Cloudflare 伺服器提出要求時,Cloudflare 將建立與來源伺服器的 HTTP 連線以要求此頁面。這就是 Railgun 加速並確保安全的 HTTP 連線。
Railgun 由兩個軟體元件組成:Listener 和 Sender。Railgun Listener 安裝於來源伺服器上的 Web 主機。這是一個在標準伺服器上執行的小軟體,使用加密的二進位 Railgun 通訊協定為 Cloudflare 的要求提供服務。
Railgun Sender 安裝於全球所有的 Cloudflare 資料 中心,並維持與 Railgun Listener 的連線。
當出現必須由來源伺服器處理的 HTTP 要求時,Cloudflare 將判定其目的地是否為啟用 Railgun 的網站。如果不是,將使用標準 HTTP,如果是,HTTP 要求將被路由傳送至 Railgun Sender 以供處理。
Railgun Sender 將此要求轉換為壓縮的二進位區塊以傳輸至對應的 Railgun Listener。Railgun Listener 處理此要求,並對來源伺服器執行 HTTP 要求。從來源伺服器的角度看,HTTP 連線好像直接來自 Cloudflare,但其實這來自代管合作夥伴的基礎結構內部,因此此要求不會造成任何相關延遲。
Railgun 在比較頁面版本的基礎上採用一種新的快取機制,以判定需要在網際網路中將哪些內容傳輸至 Railgun Sender。透過採用此機制,Cloudflare 通常能實現 99.6% 的壓縮 (例如,一個 100k 網頁可壓縮至 400 位元組) 並加速超過 700%。其實,壓縮的資料通常非常小,因而整個回應可透過使用二進位 Railgun 通訊協定來安裝於單個 TCP 封包中。
Railgun 連線安全性可透過 TLS 來確保,因此無法竊聽在其間傳送的要求。可透過憑證來保護連線,因此不會發生路徑中攻擊。Cloudflare 與來源伺服器之間的 TCP 連線始終保持運作,因此可將其重複用於後續要求,消除了 TCP 連線的緩慢啟動。
Railgun 要求將被多工處理傳送到相同的連線,並可進行非同步處理。這表示 Railgun 能處理許多同時要求,無需封鎖和最大化使用 TCP 連線。
Railgun Listener 是一個單一的可執行檔,其唯一的依賴性是一個執行中的 Memcache 執行個體。這作為精靈在 64 位元 Linux 系統中執行。
Listener 需要一個通往網際網路獲取 Railgun 通訊協定的單一連接埠,以便 Cloudflare 資料中心能與其連絡。並且,它需要存取透過 HTTP 和 HTTPS 存取網站。理想情況下,Listener 應安裝在能快速存取網際網路且具有低延遲的伺服器中。安裝僅僅是透過 RPM 或 .deb檔案進行安裝。如需有關安裝 Railgun 的詳細資訊,請參閱正式 Railgun 文檔。
擁有 Cloudflare Business 或Enterprise 計劃的客戶,或使用 Optimized Hosting Partner 託管的客戶均可使用 Railgun。
在 5 分鐘內建立網域。保留您的代管提供者。無需更改程式碼。