Nginx詳解(五) upstream模塊詳解


upstream中常用的參數
 
server:負載均衡后端的服務器的IP或域名,不寫端口默認是80,高並發場景用域名,再通過DNS進行負載均衡
weight:后端服務器的權重,默認為1,權重越大接收的請求越多,例如:weight=5
max_fails:檢查節點的健康狀態並允許請求失敗的次數,達到該次數將節點下線,默認為1,0表示禁止失敗嘗試,例如:max_fails=2
fail_timeout:max_fails失敗次數達到限制后暫停該節點服務器時間,默認是10秒。
backup:熱備配置,當服務池中所有的服務器出現問題后會自動上線backup服務器。
down:標志服務器不可用,不參與負載均衡,這個參數通常配合IP_HASH使用。
max_conns:限制最大連接數,通常對后端服務器硬件不一致的情況進行配置。
keepalive:限制空閑長連接的最大數量。
keepalive_timeout:空閑長連接的最長保持時間。
keepalive_requests:每個長連接最多可以處理的請求數。
 
upstream配置示例
 
upstream wp{
     server 10.158.1.10 down;
     server 10.158.1.20 backup;
      server 10.158.1.30 max_failes=3 fail_timeout=10s weight=5;
     keepalive_timeout 30s;
     keepalive_requests 100;
}
 
 
upstream負載均衡算法
 
輪詢算法(默認算法):每個請求依次會分配給后端不同的應用程序服務器,不理會后端服務器的時機壓力。
 
http{
    upstream wp{
        server 10.158.1.10;
        server 10.158.1.20;
        server 10.158.1.30;
   }
server {
      listen 80;
      server name www.wp.com;
        location /{
          proxy_pass http://wp;
       }
}
}
加權負載均衡:權重越大的服務器,被分配到的次數就會越多,通常用於后端服務器性能不一致的情況。
 
http {
     upstream  wp{
           server 10.158.1.10 weight=3;
           server 10.158.1.20 ;
   }
  server {
   listen 80;
   server name wp.com;
    localtion / { 
          proxy_pass http://wp;
    }
 }
    }
 
IP_HASH:當IP進行重復訪問時會被指定到上次訪問的服務器,可以解決動態網站session共享問題
 
upstream wp{
  ip_hash;
  server 10.158.1.10;
  server 10.158.1.20;
   server 10.158.1.30;
 }
基於URL的HASH 當   當客戶端多次訪問同一個地址時分配到固定的節點
upstream wp{
    hash $request_url;
    server 10.158.1.10;
    server 10.158.1.20;
    server 10.158.1.30;
}
 
最少連接數輪詢:哪個節點當前的連接數少就分配給哪個節點處理
least_conn;
upstream wp{
 lease_conn;
 server 10.158.1.10;
 server 10.158.1.20;
}
proxy_pass模塊常用指令
 
proxy_pass 指定需要反向代理的服務器地址,可以是一個upstream池
proxy_next_upstream 如果后端服務器不可用的話自動請求轉發到另一台服務器,默認為on,還可以設置為timeout或者http狀態碼。
proxy_method 修改用戶的method請求
proxy_http_version 修改用戶的http協議版本
proxy_set_header  修改用戶header
proxy_set_body  修改body信息
proxy_send_timeout 默認60s
proxy_connect_timeout 默認60s
 
server {
  listen 80;
   server name wp;
   location /{
    proxy_pass http://10.158.1.110;
     proxy_method PUT;
     proxy_http_version 1.1;
     proxy_set_header wp "wp";
  }
 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM