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";
}
}
