卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Nginx負載均衡配置

Nginx 負載均衡配置詳解一、測試環(huán)境由于沒有服務(wù)器,所以本次測試直接host 指定域名(my.local )測試域名:my.localA 服務(wù)器:172.16.10.181B 服務(wù)器:172.16

Nginx 負載均衡配置詳解

一、測試環(huán)境

由于沒有服務(wù)器,所以本次測試直接host 指定域名(my.local )

測試域名:my.local

A 服務(wù)器:172.16.10.181

B 服務(wù)器:172.16.10.131

C 服務(wù)器:172.16.10.130 (主服務(wù)器)

二、域名解析 由于不是真實環(huán)境,域名就隨便使用一個my.local 用作測試,所以my.local 的解析只能在hosts 文件設(shè)置。

打開:C:WindowsSystem32driversetchosts

在末尾添加

172.16.10.181 my.local

保存退出,然后啟動命令模式ping 下看看是否已設(shè)置成功,如下圖

,

三、Nginx 配置

1)A 服務(wù)器(主服務(wù)器)nginx.conf 配置

打開nginx.conf ,文件位置在nginx 安裝目錄的conf 目錄下。 在http 段加入以下代碼

upstream my.local {

ip_hash; #默認可以不加,加上此行則已ip_hash方式進行負載均衡

#weight為權(quán)重,數(shù)字越大權(quán)重越高

server 172.16.10.131:80 weight=1;

server 172.16.10.130:80 weight=1;

}

server{

listen 80;

server_name my.local;

location / {

proxy_pass http://my.local;

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 (/usr/local/nginx/sbin/nginx -s reload)

2)B 、C 服務(wù)器nginx.conf 設(shè)置

打開nginx.conf ,文件位置在nginx 安裝目錄的conf 目錄下。

在http 段加入以下代碼

server{

} listen 80; server_name my.local; index index.html index.htm index.php; root /home/wwwroot/default;

保存重啟nginx (/usr/local/nginx/sbin/nginx -s reload)

四、測試

當訪問my.local 的時候,為了區(qū)分是轉(zhuǎn)向哪臺服務(wù)器處理分別在B 、C 服務(wù)器下寫一個不同內(nèi)容的index.html 文件,以作區(qū)分。

打開瀏覽器訪問my.local 結(jié)果,刷新會發(fā)現(xiàn)所有的請求均分別被主服務(wù)器

(172.16.10.181)分配到B 服務(wù)器(172.16.10.131)與C 服務(wù)器(172.16.10.130)上,實現(xiàn)了負載均衡效果。

B 服務(wù)器:

C 服務(wù)器:

,

假如其中一臺服務(wù)器宕機會怎樣?

當某臺服務(wù)器宕機了,是否會影響訪問呢?

我們先來看看實例,根據(jù)以上例子,假設(shè)C 服務(wù)器172.16.10.130這臺機子宕機了(由于無法模擬宕機,所以我就把C 服務(wù)器關(guān)機)然后再來訪問看看。

訪問結(jié)果則都是下圖顯示結(jié)果:

我們發(fā)現(xiàn),雖然C 服務(wù)器(172.16.10.130)宕機了,但不影響網(wǎng)站訪問。這樣,就不會擔(dān)心在負載均衡模式下因為某臺機子宕機而拖累整個站點了。

五、同一臺服務(wù)器設(shè)置多個域名的負載均衡

多個域名配置和my.local 的配置一樣。

假設(shè)second.local 的主服務(wù)器IP 是172.16.10.181,負載均衡到172.16.10.132和172.16.10.133機器上

現(xiàn)將域名second.local 解析到172.16.10.181上。

在主服務(wù)器(172.16.10.181)的nginx.conf 加入以下代碼:

upstream second.local {

server 172.16.10.132:80;

,

server 172.16.10.133:80; }

server{

listen 80;

server_name second.local;

location / {

proxy_pass http://second.local;

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

在172.16.10.132與172.16.10.133機器上設(shè)置nginx ,打開nginx.conf 在末尾添加以下代碼:

server{

} listen 80; server_name second.local; index index.html index.htm index.php; root /home/wwwroot/default;

保存重啟nginx

完成以上步驟后即可實現(xiàn)second.local 的負載均衡配置了。

六、主服務(wù)器提供服務(wù)

以上例子中,我們都是應(yīng)用到了主服務(wù)器負載均衡到其它服務(wù)器上,那么主服務(wù)器本身能不能也加在服務(wù)器列表中,這樣就不會白白浪費拿一臺服務(wù)器純當做轉(zhuǎn)發(fā)功能,而是也參與到提供服務(wù)中來。

如以上案例三臺服務(wù)器:

,

A 服務(wù)器:172.16.10.181

B 服務(wù)器:172.16.10.131

C 服務(wù)器:172.16.10.130 (主服務(wù)器)

我們把域名解析到A 服務(wù)器,然后由A 服務(wù)器轉(zhuǎn)發(fā)到B 服務(wù)器與C 服務(wù)器,那么A 服務(wù)器只做一個轉(zhuǎn)發(fā)功能,現(xiàn)在我們讓A 服務(wù)器也提供站點服務(wù)。

我們先來分析一下,如果添加主服務(wù)器到upstream 中,那么可能會有以下兩種情況發(fā)生:

1、主服務(wù)器轉(zhuǎn)發(fā)到了其它IP 上,其它IP 服務(wù)器正常處理;

2、主服務(wù)器轉(zhuǎn)發(fā)到了自己IP 上,然后又進到主服務(wù)器分配IP 那里,假如一直分配到本機,則會造成一個死循環(huán)。

怎么解決這個問題呢?因為80端口已經(jīng)用來監(jiān)聽負載均衡的處理,那么本服務(wù)器上就不能再使用80端口來處理my.local 的訪問請求,得用一個新的。于是我們把主服務(wù)器的nginx.conf 加入以下一段代碼: server{

} listen 8081; server_name my.local; index index.html index.htm index.php; root /home/wwwroot/default;

重啟nginx ,在瀏覽器輸入my.local:8081試試看能不能訪問。結(jié)果可以正常訪問

,

既然能正常訪問,那么我們就可以把主服務(wù)器添加到upstream 中,但是端口要改一下,如下代碼: upstream my.local {

ip_hash; #默認可以不加,加上此行則已ip_hash方式進行負載均衡

#weight為權(quán)重,數(shù)字越大權(quán)重越高

server 172.16.10.131:80 weight=1;

server 172.16.10.130:80 weight=1; server 172.16.10.181:8081 weight=1;

} 由于這里可以添加主服務(wù)器IP 172.16.10.181或者127.0.0.1均可以,都表示訪問自己。 重啟Nginx ,然后再來 刷新

訪問my.lcoal 看看會不會分配到主服務(wù)器上。

主服務(wù)器也能正常加入服務(wù)了。

七、總結(jié)

2)多臺服務(wù)器提供服務(wù),但域名只解析到主服務(wù)器,而真正的服務(wù)器IP 不會被ping 下即可獲得,增加一定安全性。

3)upstream 里的IP 不一定是內(nèi)網(wǎng),外網(wǎng)IP 也可以。不過經(jīng)典的案例是,局域網(wǎng)中某臺IP 暴露在外網(wǎng)下,域名直接解析到此IP 。然后又這臺主服務(wù)器轉(zhuǎn)發(fā)到內(nèi)網(wǎng)服務(wù)器IP 中。

,

4)某臺服務(wù)器宕機、不會影響網(wǎng)站正常運行,Nginx 不會把請求轉(zhuǎn)發(fā)到已宕機的IP 上

標簽: