發布時間: 2021-06-25 09:54:10
你是否有過這樣的經歷?當你在晚上7-8點上網高峰期輸入某些網站的網址去訪問時,頁面出現404,500等這樣的錯誤信息?
此時,我們會第一時間去檢查自己手機或者電腦的網絡是否有問題,經過飛行模式、重啟、拔下網線重新連接等操作發現依舊不行;而其他類似于淘寶,京東,百度這樣的大型網站都能夠實現正常訪問。
這個時候我們就會想:這個網站是不是被封殺了?或者這個網站是不是“崩”了?而實際上,只是因為這個時間上,網絡就像馬路交通一樣陷入了擁堵,同一時刻訪問這個網站的人太大,導致你無法直接抵達,只能等候排隊!
其實大家不用擔心,通常導致這種情況出現的原因,是訪問該網站的人過多,而網站無法支撐這么多的用戶訪問所以導致了崩潰。
那么問題來了:像淘寶、京東、百度這樣的網站,每天最少有千萬的用戶去訪問它,在618,雙11的時候,訪問的用戶劇增!這些網站是如何做到支持這么多的用戶同時實現訪問的呢? 這其中就可能涉及到Nginx技術中的“負載均衡”和“高并發處理”等問題。
什么是負載均衡呢?負載均衡可以理解為當多人同時訪問該網站時,可以通過某種方式將這些訪問的請求分攤到各內部進程上。
什么是高并發呢?高并發其實就是該網站是否能支持多人同時實現訪問的情況下依然能夠保保證處于穩定運行的狀態。
另一方面,你是否有過這樣的經歷:當你去訪問淘寶,京東這樣的購物網站,或者使用這樣的APP后,第二次再去查看這個APP,你以前瀏覽過的商品頁面出現在了你的視野中,還給你推薦了類似的商品。
我們都知道這是通過大數據來實現的,但實際上大數據的實現也需要有強有力的后臺支撐,這么多的用戶都能享受到這種“量身定制”的服務。
這其中就有Nginx的功勞, Nginx技術可以說是大型網站的福音,是多業務,多平臺,多訪問量場景下實現負載均衡,高并發,結合大數據行為分析,全棧監控進行快速故障定位等的必備技術手段。
多業務平臺下的Nginx應用場景:

Nginx的優點
更快,單次請求更快,高峰期也更快。
高擴展性,極具擴展性,它由多個不同功能、不同層次、不同類型且耦合度較高的模塊組成,這種低耦合的設計,造就了它龐大的第三方模塊。
高可靠性,每個worker進程相對獨立,master進程在某個worker進程出錯時能迅速拉起新的worker進程,nginx的可靠性來源于其核心框架代碼的優秀設計、模塊設計的簡單性。
低內存消耗,一般情況下10000個非活躍的keep-alive連接僅消耗2.5M的內存。
單機支持10萬以上的并發連接,Nginx支持的并發連接上限取決于內存,10萬遠沒封頂。
Nginx實用場景
大型Nginx網站架構:

Nginx應用案例:

應用Nginx后的收益
業務更加穩定:
1. Nginx大連接數目支持非常好。
2. Nginx本身占用內存很少,不會吃Swap。
業務性能更高:
1. Qps比Apache更好。
2. 節省及其數據。
3. 基于Nginx的模塊性能是之前業務的數倍。
上一篇: tar命令進行文件的歸檔和壓縮
下一篇: C和C++哪個好