nginx負載均衡

最近要用到一臺nginx和兩臺tomcat做一個架構,其中nginx 的作用就是負載均衡,整理了一下步驟:

部署環境:三臺centos

分別爲:1、nginx    192.168.1.213

    2、tomcat1   192.168.1.233

    3、tomcat2   192.168.1.184  

前提條件,nginx、tomcat正常訪問首頁。網絡互通

部署思路:客戶端訪問nginx負載均衡機(192.168.1.213)上,由1.213調度訪問請求到後端的真實tomcat1服務器或者tomcat2服務器上。

nginx負載均衡機(192.168.1.213)上的nginx。conf設置如下:

修改/etc/nginx/nginx.conf

在http段下加入以下代碼:

upstream LXL {     #####LXL爲自定義負載均衡的名字,要記着下面用的到

        server 192.168.1.233:8080;    #這裏本人是開放的8080端口        

        server 192.168.1.184:8080;


}

server {

        listen 8080;

        server_name 192.168.1.213;

        location / {    #對/所有做負載均衡,nginx採用完全轉發

        proxy_pass http://LXL;  #這upstream的名稱

        proxy_set_header Host $host;   #保留用戶真實信息

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

ok!到這,關於nginx的負載均衡就算完畢,這只是簡單地一種,你們想想,nginx的負載均衡作用是把壓力分散到下面的服務器,到底怎麼分散呢。nginx給了三種模式

1、輪詢(這個爲默認)

每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器down掉,能 自動剔除

比如上面那個就是如此

2、指定的權重(加權輪詢)

指定輪詢機率,weight和訪問比率成正比,用於後端服務器性能不均的情況

upstream LXL {     

        server 192.168.1.233:8080 weight=10 fail_timeout=20s;            

        server 192.168.1.184:8080 weight=10 fail_timeout=20s;

}

3、IP綁定ip_hash

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

upstream LXL { 

      ip_hash;     

        server 192.168.1.233:8080 fail_timeout=20s;            

        server 192.168.1.184:8080 fail_timeout=20s;

}

  4、fair(第三方)

按後端服務器的響應時間來分配請求,響應時間短的優先分配。 

upstream backserver { 

      server server1;

      server server2; 

      fair; 

}

OK!關於nginx的負載均衡就到這裏吧,

希望對初學者有所幫助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章