負載均衡----實現配置篇(Nginx)
吐槽:自從那篇“探討負載均衡”那篇文章被博客園吐槽後,心裏極度不平衡,思來想去還是把名字改成“負載均衡----概念認識篇”,再加多幾篇文章來詮釋上篇文章的精華所在。
還不了解負載均衡的,推薦你閱讀:負載均衡----概念認識篇
----------- 華麗的分割線 正文開始---------------
首先我們來回顧下上篇的概念: 負載均衡 == 分身的能力。
既然要有分身的能力嘛,這好辦,多弄幾臺服務器就搞定了。
今天我們講的實例嘛…..我們還是先看圖比較好:
還是圖比較清晰,以下我都用別名稱呼:
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)