博客 / 詳情

返回

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

原文作者:Frances Fedoriska of F5
原文鏈接:如何應對突發的流量激增和服務器過載問題
轉載來源:NGINX官方網站

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

第 1 步:知己知彼

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

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

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

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

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

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

2021 年的早些時候,NGINX在互聯網 Web 服務器排名中榮登第一寶座。我們很榮幸有這麼多網站信任我們,使用我們的產品交付網站和應用,同時我們也非常歡迎您的加入。然而,NGINX 不僅僅是一個 Web 服務器,它還是一個一體化的軟件反向代理、負載均衡器、高速緩存和 API 網關。

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

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

  • 通過使用 keepalive 連接進行 HTTP 卸載,目的是緩衝緩慢到達的 HTTP 請求,並等到它們準備就緒後再將其轉發到後端服務器。相比遠端客户端,從 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 功能來有效應對流量高峯:

  • 在雲環境中部署 NGINX 和應用。NGINX 支持在 、亞馬遜雲科技(AWS)、谷歌雲平台和 Microsoft Azure 等主要雲環境中使用。每個雲服務提供商都支持自動擴展以調整應用實例的數量,從而響應變化的需求。如欲瞭解更多信息,請參閲亞馬遜雲科技、谷歌雲平台和 Azure 上的自動擴展文檔。
  • 在 Kubernetes 環境中部署容器。NGINX Ingress Controller 和 NGINX Service Mesh 提供了多種功能,可增強 Kubernetes 應用的彈性。您可以根據用户需求水平擴展應用 pod,並且幾乎不會增加實時用户的延遲。
  • 使用 NGINX Plus API 動態擴展後端服務器並通過NGINX Plus對後端服務器進行負載均衡。

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

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

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


更多資源

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

請前往 NGINX 開源社區:

  • 官網:https://www.nginx.org.cn/
  • 微信公眾號:https://mp.weixin.qq.com/s/XV...
  • 微信羣:https://www.nginx.org.cn/stat...
  • B 站:https://space.bilibili.com/62...
user avatar leo_su 頭像 xuxiaocong_5e947e5ce588a 頭像 chigeshitou 頭像 siguoya_5abdbfca4062c 頭像 boywus 頭像 tingtr 頭像 weiyigeek 頭像
7 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.