如何應對突發的流量激增和伺服器過載問題

語言: CN / TW / HK

原文作者:Frances Fedoriska of F5

原文連結:如何應對突發的流量激增和伺服器過載問題

轉載來源:NGINX官方網站


在新冠疫情的衝擊下,許多零售商的客戶都改變了他們假日購物的渠道和方式。由於人們無法去實體店購物,線上購物迎來了前所未有的新高潮——2020 年美國的電子商務銷售額飆升至 1,890 億美元,比 2019 年增長了 33%。現在購物狂歡節還有不到六個月的時間,[LK1] 我們在此提供了幾種利用 NGINX 幫助您為突發的流量高峰做好準備的方法。

第 1 步:知己知彼

在調整堆疊之前,最好先了解您需要在多大程度上優化您的網站效能,才能在購物狂歡季有最佳(而不是勉強合格)的表現。先從收集競爭對手網站的效能資料開始吧。頁面載入時間可能是最重要的指標,因為如今許多使用者都沒有耐心,只要網頁載入時間超過三秒,他們就會離開。測量載入時間的工具有很多,並且大多都是免費的。您不妨參考一下Geekflare 最近測評的 11 款測試工具

您可考慮測量以下頁面的載入時間:

  • 主頁
  • 產品搜尋頁面
  • 產品詳情頁面
  • 點選“購買”按鈕後出現的確認頁面

測試幾個競爭對手和您自己的網站的關鍵頁面只需幾個小時。(在測量下載時間之前,請務必使用Shift+Refresh清除瀏覽器快取。)有測量結果的加持,您接下來需要做的是:

  • 制定總體效能指標。對不同的網站來說,從頭到尾的整個流程(訪問、搜尋及購買)共需要多長時間?
  • 確定優劣勢。找出您的網站有優勢、有競爭力或拖後腿的地方。
  • 注意功能差異。競爭對手如何通過額外的功能提升購物體驗?您的網站提供了哪些功能來打造獨特的使用者體驗?
  • 制定計劃。如果您的網站在一個或多個方面遠遠落後於競爭對手,那麼您需要努力達到他們的平均響應時間;如果您已擁有很強的競爭力,則努力成為第一名吧。

第 2 步:使用 NGINX,就像那些全球最繁忙的網站一樣

2021 年的早些時候,NGINX網際網路 Web 伺服器排名中榮登第一寶座。我們很榮幸有這麼多網站信任我們,使用我們的產品交付網站和應用,同時我們也非常歡迎您的加入。然而,NGINX 不僅僅是一個 Web 伺服器,它還是一個一體化的軟體反向代理負載均衡器快取記憶體API 閘道器

NGINX 最重要的優勢之一是它可以大大優化進入您網站的流量。您可以將 NGINX 看作是在商店門前管理人流的看門人。它能夠對購物者的操作(HTTP 請求)進行排隊和授權,就像把人行道上混亂的人群變成商店內順暢有序的結賬佇列。它能夠將購物者引導至購物清單上商品的特定位置,確保流量均勻分佈,且所有資源都得到均勻使用。

NGINX 主要使用兩種開箱即用的技術來實現這一點:

  • 通過使用 keepalive 連線進行 HTTP 解除安裝,目的是緩衝緩慢到達的 HTTP 請求,並等到它們準備就緒後再將其轉發到後端伺服器。相比遠端客戶端,從 NGINX(位於快速的本地網路)發起的事務的完成速度要快得多。
  • 具有多種演算法的成熟的負載均衡,目的是優化流量分佈,並儘可能高效地使用伺服器資源。

除了優化流量外,NGINX 還提供了以下四種方式幫助您優化網站,並防止流量激增期間出現伺服器過載問題。

閱讀詳情:

通過快取記憶體縮短網頁響應時間

很多功能都會增加線上交易的成功機率,比如點選收藏、線上下單併線下取貨,甚至客戶支付選項等。NGINX 的內容快取功能與 Web 流量有著類似的效果。NGINX 會自動儲存它傳送給客戶端的每個檔案,並直接利用快取來處理給定檔案的後續請求。快取記憶體不僅可以加快對使用者的響應速度,而且還可以減少上游伺服器上的負載,因為對於相同的請求,它們不必總是從頭開始反覆進行處理。內容快取可以將內部流量減少 100 倍,從而減少服務應用所需硬體的處理能力(具體取決於應用)。

有關快取記憶體和示例配置的更多詳情,請參閱我們的博文《快取記憶體和微快取站點內容》《NGINX 和 NGINX Plus 快取記憶體指南》

使用連線、速率和頻寬控制管理訪客流量

在最繁忙的時段,出於安全原因(避免過度擁擠)或為了保證重要客戶獲得優待(VIP 時間、受邀參加的促銷活動等等),商店看門人可能需要限制進店購物的人數。Web 應用也需要採取類似的措施。您可以通過限制進入網站的流量來防止伺服器過載,並確保客戶端及時訪問所需的資源。NGINX(在容器環境中為NGINX Ingress Controller)提供了一系列限制入向流量的方法,包括:

  • 併發限制—— 限制轉發到每個伺服器的併發請求數,以匹配每個伺服器中有限的工作執行緒或程序數
  • 請求速率限制—— 對每個來自客戶端的請求按秒或按分加以限制,以防因支付閘道器或複雜搜尋等服務而出現的伺服器過載(詳情請參閱我們的博文《 NGINX 和 NGINX Plus 速率限制》)。
  • 頻寬限制—— 控制客戶端可以在每個連線中可以下載的資料量

如有必要,您可以區分不同型別的客戶端。您商店的配送區可能不會延伸至地球的另一端,或者您希望優先考慮購物車中有商品的使用者,您可以利用 cookie、地理位置資料及其他引數來控制 NGINX 應用流量限制的方式。

通過彈性擴充套件避免伺服器過載

如果您沒有部署適當的基礎架構,那麼流量激增很容易導致伺服器過載。NGINX 的輕量級事件驅動型架構可最大限度提高當前基礎架構的應用交付效能。我們提供了針對NGINX Ingress Controller以及 NGINX Plus 在裸機虛擬容器環境下的選型指南,針對您準備達到的效能和規模,選型指南可幫助您準確地瞭解所需的運營成本。

DevOps 團隊還可以利用以下 NGINX 功能來有效應對流量高峰:

通過內建的安全防護保護客戶資料

對於任何網站,特別是對於處理信用卡資訊的線上零售商來說,確保交易安全必不可少。網路攻擊可能會讓品牌聲譽受損和吃官司,對此零售商 Target 深有體會。Target 通過增強視覺化和安全性解決了 2014 年的資料洩露問題。為打造市場上最安全的購物體驗之一,從而在競爭中脫穎而出,您可實施:

現在您已準備就緒

現在,有了我們的企業級解決方案的加持,您就放心迎接即將到來的 2021 年線上線下年終購物季吧。

所有商用產品均提供 30 天免費試用版。

您也可以使用免費的開源產品:


更多資源

想要更及時全面地獲取 NGINX 相關的技術乾貨、互動問答、系列課程、活動資源?

請前往 NGINX 開源社群: