1. 程式人生 > >常見Nginx的中介軟體架構(三)

常見Nginx的中介軟體架構(三)

#三、負載均衡
#配置語法
Syntax: upstream name {...};
Default : ——
Context:http

#樣例
#upstream backend{
#    server backend1.example.com weight=5;
#    server backend2.example.com:8080;
#    server backend3.example.com ;
#    server unix:/tmp/backend3;
#
#    server backup1.example.com:8080 backup;
#    server backup2.example.com:8080 backup;
#}

#down 當前的server暫時不參與負載均衡
#backup 預留的備份伺服器
#max_fails 允許請求失敗的次數
#fail_timeout 經過max_fails失敗後,伺服器暫停時間
#max_counts 限制最大的連線的連線數

#排程演算法:
#輪詢            按時間順序逐一分配到不同的後端伺服器
#例:
#upstream backend{
#    server backend1.example.com;
#    server backend2.example.com;
#    server backend3.example.com;
#}

#加權輪詢        weight值越大,分配到的訪問機率越高
#upstream backend{
#    server backend1.example.com weight=5;
#    server backend2.example.com;
#    server backend3.example.com;

#ip_hash        每個請求按訪問IP的hash結果分配,這樣來自同一個IP的固定訪問一個後端伺服器
#upstream backend{
#    ip_hash;
#    server backend1.example.com;
#    server backend2.example.com;
#    server backend3.example.com;
#}
#least_conn        最少連線數,哪個機器連線數少就分發
#upstream backend{
#    least_conn;
#    server backend1.example.com;
#    server backend2.example.com;
#    server backend3.example.com;
#}
#url_hash        按照訪問的URL的hash結果來分配請求,使每個URL定向到同一個後端伺服器
#upstream backend{
#    url_hash;
#    server backend1.example.com;
#    server backend2.example.com;
#    server backend3.example.com;
#}
#hash關鍵數值    hash自定義的key
#Syntax: hash key [consistent];
#Default : ——
#Context:upstream
#upstream backend{
#    hash $request_uri;
#    server backend1.example.com;
#    server backend2.example.com;
#    server backend3.example.com;
#}