負載平衡是我們大流量網站要做的一個對象,下面我來給各人先容在Nginx處事器長舉辦負載平衡設置要領,但愿對有需要的同學有所輔佐哦。
負載平衡
先來簡樸相識一下什么是負載平衡,單從字面上的意思來領略就可以表明N臺處事器平均分管負載,不會因為某臺處事器負載高宕機而某臺處事器閑置的環境。那么負載平衡的前提就是要有多臺處事器才氣實現,也就是兩臺以上即可。
測試情況
由于沒有處事器,所以本次測試直接host指定域名,然后在VMware里安裝了三臺CentOS。
測試域名 :a.com
A處事器IP :192.168.5.149 (主)
B處事器IP :192.168.5.27
C處事器IP :192.168.5.126
陳設思路
A處事器做為主處事器,域名直接理會到A處事器(192.168.5.149)上,由A處事器負載平衡到B處事器(192.168.5.27)與C處事器(192.168.5.126)上。
域名理會
由于不是真實情況,域名就隨便利用一個a.com用作測試,所以a.com的理會只能在hosts文件配置。
打開:C:WindowsSystem32driversetchosts
在末端添加
192.168.5.149 a.com
生存退出,然后啟動呼吁模式ping下看看是否已配置樂成
從截圖上看已樂成將a.com理會到192.168.5.149IP
A處事器nginx.conf配置
打開nginx.conf,文件位置在nginx安裝目次的conf目次下。
在http段插手以下代碼
upstream a.com {
server 192.168.5.126:80;
server 192.168.5.27:80;
}
server{
listen 80;
server_name a.com;
location / {
proxy_pass
http://a.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;
}
}
生存重啟nginx
B、C處事器nginx.conf配置
打開nginx.confi,在http段插手以下代碼
server{
listen 80;
server_name a.com;
index index.html;
root /data0/htdocs/www;
}
生存重啟nginx
測試
當會見a.com的時候,為了區分是轉向哪臺處事器處理懲罰我別離在B、C處事器下寫一個差異內容的index.html文件,以作區分。
打開欣賞器會見a.com功效,刷新會發明所有的請求均別離被主處事器(192.168.5.149)分派到B處事器(192.168.5.27)與C處事器(192.168.5.126)上,實現了負載平衡結果。
B處事器處理懲罰頁面
C處事器處理懲罰頁面
如果個中一臺處事器宕時機奈何?
當某臺處事器宕機了,是否會影響會見呢?
我們先來看看實例,按照以上例子,假設C處事器192.168.5.126這臺機子宕機了(由于無法模仿宕機,所以我就把C處事器關機)然后再來會見看看。
會見功效:
我們發明,固然C處事器(192.168.5.126)宕機了,但不影響網站會見。這樣,就不會擔憂在負載平衡模式下因為某臺機子宕機而拖累整個站點了。
假如b.com也要配置負載平衡怎么辦?
很簡樸,跟a.com配置一樣。如下:
假設b.com的主處事器IP是192.168.5.149,負載平衡到192.168.5.150和192.168.5.151呆板上
現將域名b.com理會到192.168.5.149IP上。
在主處事器(192.168.5.149)的nginx.conf插手以下代碼:
upstream b.com {
server 192.168.5.150:80;
server 192.168.5.151:80;
}
server{
listen 80;
server_name b.com;
location / {
proxy_pass
http://b.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;
}
}
生存重啟nginx
在192.168.5.150與192.168.5.151呆板上配置nginx,打開nginx.conf在末端添加以下代碼: