除了負載均衡,Nginx 能做的真是太強大了!

2021-10-04 20:57:00 字數 1882 閱讀 8995

2023年04月09日 星期四

一、靜態**

二、負載均衡

三、限流

四、快取

五、黑白名單

nginx應該是現在最火的web和反向**伺服器,沒有之一。她是一款誕生於俄羅斯的高效能web伺服器,尤其在高併發情況下,相較apache,有優異的表現。

那除了負載均衡,她還有什麼其他的用途呢,下面我們來看下。

一、靜態**

nginx擅長處理靜態檔案,是非常好的、檔案伺服器。把所有的靜態資源的放到nginx上,可以使應用動靜分離,效能更好。

二、負載均衡

nginx通過反向**可以實現服務的負載均衡,避免了伺服器單節點故障,把請求按照一定的策略**到不同的伺服器上,達到負載的效果。

常用的負載均衡策略有:

1、輪詢

將請求按順序輪流地分配到後端伺服器上,它均衡地對待後端的每一台伺服器,而不關心伺服器實際的連線數和當前的系統負載。

2、加權輪詢

不同的後端伺服器可能機器的配置和當前系統的負載並不相同,因此它們的抗壓能力也不相同。

給配置高、負載低的機器配置更高的權重,讓其處理更多的請;而配置低、負載高的機器,給其分配較低的權重,降低其系統負載,加權輪詢能很好地處理這一問題,並將請求順序且按照權重分配到後端。

3、ip_hash(源位址雜湊法)

根據獲取客戶端的ip位址,通過雜湊函式計算得到乙個數值,用該數值對伺服器列表的大小進行取模運算,得到的結果便是客戶端要訪問伺服器的序號。

採用源位址雜湊法進行負載均衡,同一ip位址的客戶端,當後端伺服器列表不變時,它每次都會對映到同一台後端伺服器進行訪問。

4、隨機

通過系統的隨機演算法,根據後端伺服器的列表大小值來隨機選取其中的一台伺服器進行訪問。

5、least_conn(最小連線數法)

由於後端伺服器的配置不盡相同,對於請求的處理有快有慢,最小連線數法根據後端伺服器當前的連線情況,動態地選取其中當前積壓連線數最少的一台伺服器來處理當前的請求,盡可能地提高後端服務的利用效率,將負責合理地分流到每一台伺服器。

三、限流

nginx的限流模組,是基於漏桶演算法實現的,在高併發的場景下非常實用,如下圖:

1、配置引數

1)limit_req_zone定義在http塊中,$binary_remote_addr 表示儲存客戶端ip位址的二進位制形式。

2)zone定義ip狀態及url訪問頻率的共享記憶體區域。

zone=keyword標識區域的名字,以及冒號後面跟區域大小。16000個ip位址的狀態資訊約1mb,所以示例中區域可以儲存160000個ip位址。

3)rate定義最大請求速率。示例中速率不能超過每秒100個請求。

2、設定限流

burst排隊大小,nodelay不限制單個請求間的時間。

四、快取

1、瀏覽器快取,靜態資源快取用expire。

2、**層快取

五、黑白名單

1、不限流白名單

2、黑名單

好了,上面就是nginx幾個常用功能,靜態分離、負載均衡、限流、快取、黑白名單等,你都了解了嗎?

nginx 負載均衡 Nginx負載均衡策略

nginx提供的負載均衡策略有2種 內建策略和擴充套件策略。內建策略為輪詢 預設 加權輪詢,ip hash,第三方。upstream mysvr1 輪詢 每個請求按照時間順序逐一的分配到每乙個後台伺服器上。如果某台伺服器宕機了,將會自動的剔除宕機的服務。nginx預設就是輪詢其權重都預設為1,伺服器...

nginx負載均衡

nginx 的 upstream目前支援 4 種方式的分配 1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。2 weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。3 ip hash 每個請求按訪問ip的hash...

nginx負載均衡

nginx s stop quick exit nginx s quit graceful quit nginx s reload changing configuration,starting a new worker,quitting an old worker gracefully nginx...