nginx的負載均衡

    nginx負載均衡概述     

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

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

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

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

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

     實驗        

    1 . 關閉防火牆      nginx

iptables -F
sed  -i 's/enforcing/disabled/' /etc/selinux/config

systemctl stop firewalld
systemctl disable firewalld

 

     2 . 準備服務器      web

nginx1      192.168.13.121   # 做爲nginx負載均衡器                只要我訪問這個負載均衡器,查看頁面的結果,究竟是來自於

nginx2      192.168.13.24      # web服務,提供一個頁面        

nginx3     192.168.13.79     # web服務,提供一個頁面 

 

    3 . 配置服務器       算法

     先配置兩個nginx  web頁面       django

192.168.13.24   : 
# 準備一個   index.html  寫入  你好,我是192.168.13.24機器
    vim /opt/nginx112/conf/nginx.conf  #先查看
    vim /opt/nginx112/html/index.html   # 編輯頁面

192.168.13.79    :
# 準備一個    index.html 寫入        老了老弟,我是192.168.13.79
    vim /opt/nginx112/conf/nginx.conf  #先查看
    vim /opt/nginx112/html/index.html   # 編輯頁面

 而後啓動兩個nginx web服務器 vim

[root@localhost opt]# nginx

 

    配置nginx負載均衡器   192.168.13.121機器上   windows

# 修改配置 nginx.conf 
[root@localhost opt]#  vim /opt/nginx112/conf/nginx.conf

在http裏面.server{} 上面 寫入以下內容 :

 upstream s15webserver { #負載均衡池
    ip_hash;
    server 192.168.13.79 ;
    server 192.168.13.24 ;
    }
#  而後在虛擬主機中添加 反向代理配置,將用戶的請求,直接轉發給 負載均衡池中的服務器

server {
        listen       80;
        #當個人請求來自於 192.168.13.121時,走這>個虛擬主機
        server_name  192.168.13.121;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        #核心配置,就在這,一條proxy_psss參數便可
        location / {
          proxy_pass http://s15webserver;   #負載均衡池
            #root   html;
            #index  index.html index.htm;
        }
  

 

   負載均衡池解釋  :      

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

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

2.weight權重(優先級)

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

 例 : 

weight權重 

upstream django {
       server 10.0.0.10:8000 weight=5;
       server 10.0.0.11:9000 weight=10;#這個節點訪問比率是大於8000的
}

ip_hash 

每一個請求按訪問ip的hash結果分配,這樣每一個訪客固定訪問一個後端服務器
upstream django {
    ip_hash;
       server 10.0.0.10:8000;
       server 10.0.0.11:9000;
}

 backup 

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

upstream django {
       server 10.0.0.10:8000 weight=5;
       server 10.0.0.11:9000;
       server node.oldboy.com:8080 backup;
}

 

       啓動負載均衡器的nginx 服務      

[root@localhost opt]#  nginx 

 在客戶端windows中測試訪問,負載均衡器  192.168.13.121 ,反覆刷新 , 查看請求分發的結果 

 

相關文章
相關標籤/搜索