1. 程式人生 > >nginx upstream 模組

nginx upstream 模組

upstream 模組主要用來實現伺服器的負載均衡,這也是大多數公司選擇 nginx 而不是 apache 的原因。

upstream 簡單配置步驟

(1)在http節點下,加入upstream節點

upstream mallServer { 
      server 127.0.0.1:8090;
      server 127.0.0.1:8091;
}

(2) 將server節點下的location節點中的proxy_pass配置為:http:// + upstream名稱

location / { 
            root  html; 
            index  index.html index.htm; 
            proxy_pass http://mallServer;
}

這樣負載均衡初步完畢了,upstream依照輪詢(預設)方式進行負載,每一個請求按時間順序逐一分配到不同的後端伺服器。假設後端伺服器down掉。能自己主動剔除。儘管這樣的方式簡便、成本低廉。但缺點是:可靠性低和負載分配不均衡。這適用於圖片伺服器叢集和純靜態頁面伺服器叢集。

upstream 高階配置

為了滿足其他需求,upstream 還有其他的分配策略。

(1) weight(權重)

指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。哪一臺伺服器的效能更好時,你可以給與它更高的權重分配。

upstream mallServer { 
      server 127.0.0.1:8090 weight=2;
      server 127.0.0.1:8091 weigth=8;
}

(2)ip_hash(訪問ip)

每一個請求按訪問ip的hash結果分配。這樣每一個訪客固定訪問一個後端伺服器,能夠解決session的問題。

upstream mallServer {
ip_hash;
server 127.0.0.1:8090;
server 127.0.0.1:8091;
}

(3)fair(第三方)

按後端伺服器的響應時間來分配請求。響應時間短的優先分配。