什么是Nginx
Nginx(engine x)是一個高性能的HTTP和反向代理服務器,具有內存少,高并發特點強。
1、處理靜態文件,索引文件以及自動檢索打開文件描述符緩沖
2、無緩沖的反向代理加速,簡單的負載均衡和容錯
為什么要做負載均衡?面臨什么問題需要做負載均衡?
帶著這個疑問,看下面的圖
一個項目,多個客戶端訪問,假設Tomcat可以接受50個請求,當客戶端同時發送請求達到80個,達到了tomcat的峰值,多余的請求怎么辦?
在前提條件下,tomcat等待隊列設置為0,設置tomcat的最大工作線程數為50,
當客戶端發送80個并發請求到tomcat,tomcat只處理前50個,剩下的30個請求會拒絕處理。
出現這個情況肯定不希望客戶訪問不了服務器,這個時候就需要用到負載均衡。
看這個時候服務器就不會崩潰啦
圖上說到會根據不同的算法進行分配請求,說幾個常見的算法。
輪詢:為第一個請求選擇健康池中的第一個后端服務器,然后按順序往后依次選擇,直到最后一個,然后循環。
最小連接:優先選擇連接數最少,也就是壓力最小的后端服務器,在會話較長的情況下可以考慮采取這種方式。
散列:根據請求源的 IP 的散列(hash)來選擇要轉發的服務器。這種方式可以一定程度上保證特定用戶能連接到相同的服務器。如果你的應用需要處理狀態而要求用戶能連接到和之前相同的服務器,可以考慮采取這種方式。
是不是對nginx又多了一些了解呢?






