1. 程式人生 > 實用技巧 >Nginx 負載均衡

Nginx 負載均衡

192.168.0.107 -> 127.0.0.1:8080 || 127.0.0.1:8081

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

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream myserver {
        server 127.0.0.1:8080;
        server 127.0.0.1:8081;
    }

    server {
        listen       80;
        server_name  192.168.0.107;
		
	location / {
	    proxy_pass   http://myserver;
        }
    }
}

weight 權重,重預設為 1,權重越高被分配的客戶端越多

upstream myserver {
    server 127.0.0.1:8080 weight=1;
    server 127.0.0.1:8081 weight=2;
}

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

upstream myserver {
    ip_hash;
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

fair(第三方),按後端伺服器的響應時間來分配請求,響應時間短的優先分配。

upstream myserver {
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
    fair;
}

url_hash(第三方),按訪問 url 的 hash 結果來分配請求,使每一個 url 定向到同一個後端伺服器。後端伺服器為快取時比較有效。注意:在 upstream 中加入 hash 語句。server 語句中不能寫入 weight 等其他的引數,hash_method 是使用的 hash 演算法。

upstream myserver {
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
    hash $request_uri; 
    hash_method crc32; 
}


https://nginx.org/en/docs/http/load_balancing.html