[Nginx]nginx的upstream模塊負載均衡應用

    通過 upstream 可以設定後端服務器,指定的方式可以是 IP 地址與端口、域名、UNIX 套接字(socket)。其中如果域名可以被解析爲多個地址,則這些地址都作爲 backend。
upstream backend {
    server lxsym.blog.51cto.com;
    server 192.168.11.68:8080;
    server unix:/tmp/backend3; 
}
upstream模塊負載均衡分配方式有:

1、輪詢(默認)
每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器down掉,能自動剔除。

2、weight(常用)
指定輪詢機率,weight和訪問比率成正比,用於後端服務器性能不均的情況。 
upstream tel_img_stream {
  server 192.168.11.68:20201 weight=100;
  server 192.168.11.69:20201 weight=100;
}

2、ip_hash
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端服務器,可以解決session的問題。
upstream tel_img_stream {
 #ip_hash;
 server 192.168.11.68:20201;
 server 192.168.11.69:20201 weight=100 down;
 server 192.168.11.70:20201 weight=100;
 server 192.168.11.71:20201 weight=100 backup;
 server 192.168.11.72:20201 weight=100 max_fails=3 fail_timeout=30s;
}

說明:
1).down 表示當前的server暫時不參與負載
2).weight 默認爲1.weight越大,負載的權重就越大。
3).backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。
4).上例中192.168.11.72:20201 設置最大失敗次數爲 3,也就是最多進行 3 次嘗試,且超時時間爲 30秒。max_fails 的默認值爲 1,fail_timeout 的默認值是 10s。
注意,當upstream中只有一個 server 時,max_fails 和 fail_timeout 參數可能不會起作用。
weight\backup 不能和 ip_hash 關鍵字一起使用。

3、fair、url_hash暫時不做介紹

最後在需要使用負載均衡的server中增加 proxy_pass http://tel_img_stream/;
獲取訪問head信息
location ~* ^/tel_img/(.*)$
    {
       proxy_pass http://tel_img_stream;
       proxy_set_header Host $host;
       proxy_set_header X-Forwarded-For $remote_addr;
    }

location 對URL進行匹配.可以進行重定向或者進行新的代理 負載均衡。

若有什麼補充可以留言~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章