1. 程式人生 > >負載均衡----實現配置篇(Nginx)

負載均衡----實現配置篇(Nginx)

domain 多次 所在 .net pan 泡妞 data 假設 推薦

吐槽:自從那篇“探討負載均衡”那篇文章被博客園吐槽後,心裏極度不平衡,思來想去還是把名字改成“負載均衡----概念認識篇”,再加多幾篇文章來詮釋上篇文章的精華所在。

還不了解負載均衡的,推薦你閱讀:負載均衡----概念認識篇

----------- 華麗的分割線 正文開始---------------

首先我們來回顧下上篇的概念: 負載均衡 == 分身的能力。

既然要有分身的能力嘛,這好辦,多弄幾臺服務器就搞定了。
今天我們講的實例嘛…..我們還是先看圖比較好:

技術分享圖片

還是圖比較清晰,以下我都用別名稱呼:

  PA : 負載均衡服務器/WEB入口服務器/www.mydomain.com
  P1 : WEB服務器/分身1/192.168.2.3
  P2 : WEB服務器/分身2/192.168.2.4
  P3 : WEB服務器/分身3/192.168.2.5

PS:首先我們學這個的開始之前吧,不懂防火墻的童鞋們,建議你們把PA、P1、P2、P3的防火墻關閉,盡量不要引起不必要的麻煩。

首先 :PA、P1、P2、P3都安裝了Nginx,不會安裝的可以去官網查看教程:http://www.nginx.cn/install (中文版教程、非常的牛X)

1. 裝完之後哈,我們先找到 PA 的nginx.conf配置文件:
在http段加入以下代碼:

upstream servers.mydomain.com { 
    server 192.168.2.3:80; 
    server 192.168.2.4:80; 
    server 192.168.2.5:80;
}

當然嘛,這servers.mydomain.com隨便取的。

那麽PA的server配置如下:
在http段加入以下代碼:

技術分享圖片
server{ 
    listen 80; 
    server_name www.mydomain.com; 
    location / { 
        proxy_pass http://servers.mydomain.com; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
}    
技術分享圖片

那麽P1、P2、P3的配置如下:

技術分享圖片
server{ 
    listen 80; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
技術分享圖片

2. 有人就問了,我用其它端口行不行啊,當然也是可以的,假設PA的nginx.conf配置文件:

技術分享圖片
upstream servers2.mydomain.com { 
    server 192.168.2.3:8080; 
    server 192.168.2.4:8081; 
    server 192.168.2.5:8082;
}

server{ 
    listen 80; 
    server_name www.mydomain.com; 
    location / { 
        proxy_pass http://servers2.mydomain.com; 
        proxy_set_header Host $host; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    } 
}
技術分享圖片

那麽P1的配置如下:

技術分享圖片
server{ 
    listen 8080; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
技術分享圖片

P2配置:

技術分享圖片
server{ 
    listen 8081; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
技術分享圖片

P3配置:

技術分享圖片
server{ 
    listen 8082; 
    server_name www.mydomain.com; 
    index index.html; 
    root /data/htdocs/www; 
}
技術分享圖片

重啟之後,我們訪問下,恩不錯,確實很厲害。
當我們把一臺服務器給關閉了後。
訪問網址,還是OK的。說明:負載均衡還要懂得修理他(T出泡妞隊營)

3. 那麽負載均衡如何保持通話呢?
當然現在有好幾種方案,我們這次只是講一種。
IP哈希策略
  優點:能較好地把同一個客戶端的多次請求分配到同一臺服務器處理,避免了加權輪詢無法適用會話保持的需求。
  缺點:當某個時刻來自某個IP地址的請求特別多,那麽將導致某臺後端服務器的壓力可能非常大,而其他後端服務器卻空閑的不均衡情況。


要想了解更深刻的印象,這兒有篇博文,推薦可以看看:
http://blog.csdn.net/xiajun07061225/article/details/9334477


nginx的配置也很簡單,代碼如下:

技術分享圖片
upstream servers2.mydomain.com { 
    server 192.168.2.3:8080; 
    server 192.168.2.4:8081; 
    server 192.168.2.5:8082;
    ip_hash;
}
技術分享圖片

其實一切就這麽簡單,來趕快試試吧!

4. 說了這麽多,其實你有沒有發現一個問題的所在,就是這麽多服務器,他們共同需要的文件從哪裏來?
想知道如何解決,請繼續關註:負載均衡 ---- 文件服務策略

負載均衡----實現配置篇(Nginx)