k8s常用資源之pod資源(三)
1103
2022-05-30
Nginx應該是現在最火的web和反向代理服務器,沒有之一。她是一款誕生于俄羅斯的高性能web服務器,尤其在高并發(fā)情況下,相較Apache,有優(yōu)異的表現。那除了負載均衡,她還有什么其他的用途呢,下面我們來看下。
一、靜態(tài)代理
Nginx擅長處理靜態(tài)文件,是非常好的圖片、文件服務器。把所有的靜態(tài)資源的放到nginx上,可以使應用動靜分離,性能更好。
二、負載均衡
Nginx通過反向代理可以實現服務的負載均衡,避免了服務器單節(jié)點故障,把請求按照一定的策略轉發(fā)到不同的服務器上,達到負載的效果。常用的負載均衡策略有
1、輪詢
將請求按順序輪流地分配到后端服務器上,它均衡地對待后端的每一臺服務器,而不關心服務器實際的連接數和當前的系統(tǒng)負載。
2、加權輪詢
不同的后端服務器可能機器的配置和當前系統(tǒng)的負載并不相同,因此它們的抗壓能力也不相同。給配置高、負載低的機器配置更高的權重,讓其處理更多的請;而配置低、負載高的機器,給其分配較低的權重,降低其系統(tǒng)負載,加權輪詢能很好地處理這一問題,并將請求順序且按照權重分配到后端。
3、ip_hash(源地址哈希法)
根據獲取客戶端的IP地址,通過哈希函數計算得到一個數值,用該數值對服務器列表的大小進行取模運算,得到的結果便是客戶端要訪問服務器的序號。采用源地址哈希法進行負載均衡,同一IP地址的客戶端,當后端服務器列表不變時,它每次都會映射到同一臺后端服務器進行訪問。
4、隨機
通過系統(tǒng)的隨機算法,根據后端服務器的列表大小值來隨機選取其中的一臺服務器進行訪問。
5、least_conn(最小連接數法)
由于后端服務器的配置不盡相同,對于請求的處理有快有慢,最小連接數法根據后端服務器當前的連接情況,動態(tài)地選取其中當前積壓連接數最少的一臺服務器來處理當前的請求,盡可能地提高后端服務的利用效率,將負責合理地分流到每一臺服務器。
三、限流
Nginx的限流模塊,是基于漏桶算法實現的,在高并發(fā)的場景下非常實用。
1、配置參數
1)limit_req_zone定義在http塊中,$binary_remote_addr 表示保存客戶端IP地址的二進制形式。
2)Zone定義IP狀態(tài)及URL訪問頻率的共享內存區(qū)域。zone=keyword標識區(qū)域的名字,以及冒號后面跟區(qū)域大小。16000個IP地址的狀態(tài)信息約1MB,所以示例中區(qū)域可以存儲160000個IP地址。
3)Rate定義最大請求速率。示例中速率不能超過每秒100個請求。
2、設置限流
burst排隊大小,nodelay不限制單個請求間的時間。
四、緩存
1、瀏覽器緩存,靜態(tài)資源緩存用expire。
2、代理層緩存
五、黑白名單
1、不限流白名單
2、黑名單
好了,上面就是nginx幾個常用功能,靜態(tài)分離、負載均衡、限流、緩存、黑白名單等,你都了解了嗎?
本文轉載自微信公眾號【java學習之道】。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。