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

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


在新冠疫情的衝擊下,許多零售商的客戶都改變了他們假日購物的管道和方式。

由於人們無法去實體店購物,線上購物迎來了前所未有的新高潮——2020 年美國的電子商務銷售額飆升至 1,890 億美元,比 2019 年增長了 33%。 

我們在此提供了幾種利用 NGINX 説明您為突發的流量高峰做好準備的方法。

 

第 1 步:知己知彼

在調整堆疊之前,最好先瞭解您需要在多大程度上優化您的網站性能,才能在購物狂歡季有最佳(而不是勉強合格)的表現。

先從收集競爭對手網站的性能數據開始吧。 頁面載入時間可能是最重要的指標,因為如今許多用戶都沒有耐心,只要網頁載入時間超過三秒,他們就會離開。 測量載入時間的工具有很多,並且大多都是免費的。

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

  • 主頁
  • 產品搜尋結果
  • 產品詳情頁面
  • 點擊「購買」按鈕後出現的確認頁面

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


制定總體性能指標

對不同的網站來說,從頭到尾的整個流程(訪問、搜索及購買)共需要多長時間?


確定優劣勢

找出您的網站有優勢、有競爭力或拖後腿的地方。


注意功能差異

競爭對手如何通過額外的功能提升購物體驗? 您的網站提供了哪些功能來打造獨特的用戶體驗?


制定計劃

如果您的網站在一個或多個方面遠遠落後於競爭對手,那麼您需要努力達到他們的平均響應時間;如果您已擁有很強的競爭力,則努力成為第一名吧。

 

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

2021年的早些時候,NGINX 在互聯網 Web 伺服器排名中榮登第一寶座。 我們很榮幸有這麼多網站信任我們,使用我們的產品交付網站和應用,同時我們也非常歡迎您的加入。

然而,NGINX 不僅僅是一個 Web 伺服器,它還是一個一體化的軟體反向代理、負載均衡器、高速緩存和 API 閘道。 

NGINX 最重要的優勢之一是它可以大大優化進入您網站的流量。 您可以將 NGINX 看作是在商店門前管理人流的看門人。

它能夠對購物者的操作(HTTP 請求)進行排隊和授權,就像把人行道上混亂的人群變成商店內順暢有序的結帳佇列。 它能夠將購物者引導至購物清單上商品的特定位置,確保流量均勻分佈,且所有資源都得到均勻使用。

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

  • 通過使用 keepalive 連接進行 HTTP 卸載,目的是緩衝緩慢到達的 HTTP 請求,並等到它們準備就緒後再將其轉發到後端伺服器。 

相比遠端用戶端,從 NGINX(位於快速的本地網路)發起的事務的完成速度要快得多。

  • 具有多種演算法的成熟的負載均衡,目的是優化流量分佈,並盡可能高效地使用伺服器資源。 


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

  • 通過高速緩存縮短網頁回應時間
  • 通過流量控制管理訪客流量
  • 通過按需彈性擴展增加彈性
  • 通過內置安全防護保護客戶數據

1
通過高速緩存縮短網頁回應時間

很多功能都會增加在線交易的成功幾率,比如點擊收藏、線上下單並線下取貨,甚至客戶支付選項等。NGINX 的內容緩存功能與 Web 流量有著類似的效果。 NGINX 會自動儲存它發送給用戶端的每個檔,並直接利用緩存來處理給定檔的後續請求。 

高速緩存不僅可以加快對使用者的回應速度,而且還可以減少上游伺服器上的負載,因為對於相同的請求,它們不必總是從頭開始反覆進行處理。 內容快取可以將內部流量減少 100 倍,從而減少服務應用所需硬體的處理能力(具體取決於應用)。

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

在最繁忙的時段,出於安全原因(避免過度擁擠)或為了保證重要客戶獲得優待(VIP 時間、受邀參加的促銷活動等等),商店看門人可能需要限制進店購物的人數。 Web 應用也需要採取類似的措施。

您可以通過限制進入網站的流量來防止伺服器過載,並確保客戶端及時訪問所需的資源。 NGINX(在容器環境中為 NGINX Ingress Controller)提供了一系列限制入向流量的方法,包括:

  • 併發限制 —— 限制轉發到每個伺服器的併發請求數,以匹配每個伺服器中有限的工作線程或進程數
  • 請求速率限制 —— 對每個來自用戶端的請求按秒或按分加以限制,以防因支付閘道或複雜搜索等服務而出現的伺服器過載
  • 帶寬限制 —— 控制用戶端可以在每個連接中可以下載的數據量

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

3
通過彈性擴展避免伺服器過載

如果您沒有部署適當的基礎架構,那麼流量激增很容易導致伺服器過載。 NGINX 的輕量級事件驅動型架構可最大限度提高當前基礎架構的應用交付性能。 

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

  • 在雲環境中部署 NGINX 和應用。 NGINX 支援在亞馬遜雲科技(AWS)、谷歌雲平臺和 Microsoft Azure 等主要雲環境中使用。 每個雲服務提供者都支援自動擴展以調整應用實例的數量,從而響應變化的需求。
  • 在 Kubernetes 環境中部署容器。 NGINX Ingress Controller和 NGINX Service Mesh 提供了多種功能,可增強Kubernetes 應用的彈性。 您可以根據使用者需求水準擴展應用pod,並且幾乎不會增加即時使用者的延遲。

4
通過內置的安全防護保護客戶數據

對於任何網站,特別是對於處理信用卡信息的在線零售商來說,確保交易安全必不可少。 網路攻擊可能會讓品牌聲譽受損和吃官司,對此零售商 Target 深有體會。 Target 透過增強可視化和安全性解決了2014 年的數據洩露問題。 

為打造市場上最安全的購物體驗之一,從而在競爭中脫穎而出,您可實施:

  • 可視化策略,説明您儘早發現漏洞
  • 在負載均衡器和 Ingress Controller上集中進行身份驗證和授權管理,助您實現穩健、易於配置的單點登錄 (SSO) 功能
  • 強大的羽量級 WAF 可防範 OWASP 十大安全漏洞和 PCI DDS 漏洞等。 
  • 服務網格可確保所有通信均經過 mTLS 加密,從而有效阻止駭客竊取網路上的敏感數據。 




作者:Frances Fedoriska

職位:F5 GTM 項目經理