nginx負載均衡

一、集羣概念前端

(1)、集羣介紹nginx

(2)、爲何要使用集羣算法

 

 

二、 負載均衡後端

 

 

 

 

  

 

(3)、nginx負載均衡實戰服務器

a、nginx負載均衡概述併發

Web服務器,直接面向用戶,每每要承載大量併發請求,單臺服務器難以負荷,我使用多臺WEB服務器組成集羣,前端使用Nginx負載均衡,將請求分散的打到咱們的後端服務器集羣中,
實現負載的分發。那麼會大大提高系統的吞吐率、請求性能、高容災

 

Nginx要實現負載均衡須要用到proxy_pass代理模塊配置負載均衡

Nginx負載均衡與Nginx代理不一樣地方在於ide

Nginx代理僅代理一臺服務器,而Nginx負載均衡則是將客戶端請求代理轉發至一組upstream虛擬服務池性能

Nginx能夠配置代理多臺服務器,當一臺服務器宕機以後,仍能保持系統可用。url

b、upstream配置

在nginx.conf 》 http區域中

    upstream slave_pools{
        server 192.168.2.10:80;
        server 192.168.2.12:80;
    }

在nginx.conf > http 區域 >  server區域  > location配置中

添加proxy_pass

        location / {
            proxy_pass http://slave_pools;
include proxy_params; # 須要手動建立
}
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;

proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
手動建立的proxy_params文件

 

此時初步負載均衡已經完成,upstream默認按照輪訓方式負載,每一個請求按時間順序逐一分配到後端節點。

 c、upstream分配策略

weight權重

upstream slave_pools {
       server 192.168.2.10:80 weight=5;
       server 192.168.2.12:80 weight=10;#這個節點訪問比率是大於8000的
}

ip_hash

每一個請求按訪問ip的hash結果分配,這樣每一個訪客固定訪問一個後端服務器
upstream slave_pools {
    ip_hash;
       server 192.168.2.10:80;
       server 192.168.2.12:80;
}

backup

在非backup機器繁忙或者宕機時,請求backup機器,所以機器默認壓力最小

upstream slave_pools {
       server 192.168.2.10  weight=5;
       server 192.168.2.12;
       server 192.168.2.13 backup;
}

 

d、nginx負載均衡調度算法

調度算法      概述
輪詢        按時間順序逐一分配到不一樣的後端服務器(默認)
weight       加權輪詢,weight值越大,分配到的訪問概率越高
ip_hash      每一個請求按訪問IP的hash結果分配,這樣來自同一IP的固定訪問一個後端服務器
url_hash      按照訪問URL的hash結果來分配請求,是每一個URL定向到同一個後端服務器
least_conn    最少連接數,那個機器連接數少就分發

1.輪詢(不作配置,默認輪詢)

2.weight權重(優先級)

3.ip_hash配置,根據客戶端ip哈希分配,不能和weight一塊兒用

相關文章
相關標籤/搜索