一、背景介紹
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修真院,成千上萬的師兄在這里找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導。快來與我一起學習吧 !