有關(guān)nginx upstream的幾種配置方式_負(fù)載集群教程

      編輯Tag賺U幣

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

      1、輪詢(xún)(默認(rèn))

      每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動(dòng)剔除。

      2、weight
      指定輪詢(xún)幾率,weight和訪(fǎng)問(wèn)比率成正比,用于后端服務(wù)器性能不均的情況。 
      例如:
          upstream bakend {
               server 192.168.0.14 weight=10;
               server 192.168.0.15 weight=10;
          }

      2、ip_hash
      每個(gè)請(qǐng)求按訪(fǎng)問(wèn)ip的hash結(jié)果分配,這樣每個(gè)訪(fǎng)客固定訪(fǎng)問(wèn)一個(gè)后端服務(wù)器,可以解決session的問(wèn)題。
      例如:
          upstream bakend {
               ip_hash;
               server 192.168.0.14:88;
               server 192.168.0.15:80;
          }

      3、fair(第三方)
      按后端服務(wù)器的響應(yīng)時(shí)間來(lái)分配請(qǐng)求,響應(yīng)時(shí)間短的優(yōu)先分配。
      upstream backend {
          server server1;
          server server2;
          fair;
      }

      4、url_hash(第三方)

      按訪(fǎng)問(wèn)url的hash結(jié)果來(lái)分配請(qǐng)求,使每個(gè)url定向到同一個(gè)后端服務(wù)器,后端服務(wù)器為緩存時(shí)比較有效。

      例:在upstream中加入hash語(yǔ)句,server語(yǔ)句中不能寫(xiě)入weight等其他的參數(shù),hash_method是使用的hash算法

      upstream backend {
          server squid1:3128;
          server squid2:3128;
          hash   $request_uri;
          hash_method crc32;
      }

      tips:

      upstream bakend{#定義負(fù)載均衡設(shè)備的Ip及設(shè)備狀態(tài)
      ip_hash;
          server 127.0.0.1:9090 down;
          server 127.0.0.1:8080 weight=2;
          server 127.0.0.1:6060;
          server 127.0.0.1:7070 backup;
      }
      在需要使用負(fù)載均衡的server中增加
      proxy_pass http://bakend/;

      每個(gè)設(shè)備的狀態(tài)設(shè)置為:
      1.down 表示單前的server暫時(shí)不參與負(fù)載
      2.weight 默認(rèn)為1.weight越大,負(fù)載的權(quán)重就越大。
      3.max_fails :允許請(qǐng)求失敗的次數(shù)默認(rèn)為1.當(dāng)超過(guò)最大次數(shù)時(shí),返回proxy_next_upstream 模塊定義的錯(cuò)誤
      4.fail_timeout:max_fails次失敗后,暫停的時(shí)間。
      5.backup: 其它所有的非backup機(jī)器down或者忙的時(shí)候,請(qǐng)求backup機(jī)器。所以這臺(tái)機(jī)器壓力會(huì)最輕。

      nginx支持同時(shí)設(shè)置多組的負(fù)載均衡,用來(lái)給不用的server來(lái)使用。

      client_body_in_file_only 設(shè)置為On 可以講client post過(guò)來(lái)的數(shù)據(jù)記錄到文件中用來(lái)做debug
      client_body_temp_path 設(shè)置記錄文件的目錄 可以設(shè)置最多3層目錄

      location 對(duì)URL進(jìn)行匹配.可以進(jìn)行重定向或者進(jìn)行新的代理 負(fù)載均衡

      來(lái)源:網(wǎng)絡(luò)搜集//所屬分類(lèi):負(fù)載集群教程/更新時(shí)間:2011-12-08
      相關(guān)負(fù)載集群教程