Nginx的負載均衡

一、背景介紹

Nginx (engine x) 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,并在一個BSD-like 協議下發行。其特點是占有內存少,并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。

二、知識剖析

Nginx常用功能,作為web服務器尤其是反向代理,負載均衡,動靜分離。

(1)

重點來說一下什么是負載均衡:我們知道單臺服務器的性能是有上限的,當流量很大時,就需要使用多臺服務器來共同提供服務,這就是所謂的集群。

負載均衡服務器,就是用來把經過它的流量,按照某種方法,分配到集群中的各臺服務器上。這樣一來不僅可以承擔

更大的流量、降低服務的延遲,還可以避免單點故障造成服務不可用。一般的反向代理服務器,都具備負載均衡的功能。

(2)

此時使用的HTTP反向代理模塊是ngx_http_proxy_module。

一般在upstream配置塊中要指明使用的負載均衡算法,比如hash、ip_hash、least_conn。

這里沒有指定,所以使用了默認的HTTP負載均衡算法 - 加權輪詢。

三、

nginx 的 upstream目前支持 4 種方式的分配

1)、輪詢(默認)

每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。

2)、weight

指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況。

2)、ip_hash

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題。

3)、fair(第三方)

按后端服務器的響應時間來分配請求,響應時間短的優先分配。

4)、url_hash(第三方)

四:

http {

upstream cluster {

server srv1 down;

server srv2 weight=2;

server srv3;

server srv3 backup;

}

server {

listen 80;

location / {

proxy_pass http://cluster;

}

}

}

upstream 每個設備的狀態:

down 表示單前的server暫時不參與負載

weight? 默認為1.weight越大,負載的權重就越大。

max_fails :允許請求失敗的次數默認為1.當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤

fail_timeout:max_fails 次失敗后,暫停的時間。

backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。

IT修真院

“我們相信人人都可以成為一個工程師,現在開始,找個師兄,帶你入門,掌控自己學習的節奏,學習的路上不再迷茫”。

這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導。快來與我一起學習吧 !

師兄帶你入門!

PPT

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容