Nginx利用ngx_http_upstream_module模組定義後端伺服器組

十五十六發表於2018-09-10

Nginx負載均衡實現的基本過程

先利用ngx_http_upstream_module模組定義一個後端伺服器組
然後再用其他代理相關模組進行負載均衡

ngx_http_upstream_module模組

ngx_http_upstream_module模組用於定義可由proxy_pass、fastcgi_pass、uwsgi_pass、scgi_pass和memcached_pass指令引用的伺服器組

常見配置項

1、upstream name { … }

定義後端伺服器組,會引入一個新的上下文;Context: http

示例:
upstream backend {
    server backend1.example.com weight=5;
    server 127.0.0.1:8080       max_fails=3 fail_timeout=30s;
    server unix:/tmp/backend3;
    server backup1.example.com  backup;
}

2、server address [parameters];

在upstream上下文中server成員,以及相關的引數;

parameters:

weight=number:權重,預設為1;
max_fails=number:失敗嘗試最大次數;超出此處指定的次數時,server將被標記為不可用;
fail_timeout=time:設定將伺服器標記為不可用狀態的超時時長;
max_conns:當前的伺服器的最大併發連線數;
backup:將伺服器標記為“備用”,即所有伺服器均不可用時此伺服器才啟用;
down:標記為“不可用”;

3、least_conn;

最少連線排程演算法,當server擁有不同的權重時其為wlc;

4、 ip_hash;

源地址hash排程方法;

示例:
upstream backend {
    ip_hash;   #設定排程演算法

    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com down;
    server backend4.example.com;
}

5、keepalive connections;

為每個worker程式保留的空閒的長連線數量;

相關文章