首先搭建3臺(tái)服務(wù)器,這里我的服務(wù)器ip分別是
外網(wǎng)ip? ? ? ? ? ? ? ? ? ? ? ? ? ????????? 內(nèi)網(wǎng)ip
111.230.197.188????????????????????172.16.16.14????????????
134.175.190.199????????????????????172.16.16.13
129.204.153.252????????????????????172.16.16.9
其中111.230.197.188作為代理服務(wù)器? ,134.175.190.199作為節(jié)點(diǎn)1量窘,129.204.153.252 作為節(jié)點(diǎn)2脆霎,目的是當(dāng)我訪問代理服務(wù)器時(shí)袁梗,會(huì)被自動(dòng)分配到節(jié)點(diǎn)1细燎,節(jié)點(diǎn)2上
1.安裝nginx?
因?yàn)閏entos7中沒有nginx的源适滓,Nginx官網(wǎng)提供了Centos的源地址铝穷。因此可以如下執(zhí)行命令添加源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安裝nginx
yum install -y nginx
啟動(dòng)nginx
systemctl start nginx.service
設(shè)置nginx開機(jī)自啟
systemctl enable nginx.service
nginx檢查配置文件
nginx -t
nginx 重啟
nginx -s reload
或service nginx restart
或systemctl restart nginx.service
nginx 停止
service nginx stop
nginx開啟
service nginx start
查看nginx 運(yùn)行狀態(tài)
service nginx status
2.負(fù)載均衡的配置
nginx 配置文件????/etc/nginx/conf.d/default.conf
server節(jié)點(diǎn)上面钠怯,加入upstream節(jié)點(diǎn)(如圖所示)
將server節(jié)點(diǎn)下的location節(jié)點(diǎn)中的proxy_pass配置為:http:// + upstream名稱,即“http://111.230.197.188”.(upstream名稱可以自定義設(shè)置曙聂,但是前后一定要對(duì)應(yīng)好)
到這里nginx的負(fù)載均衡初步配置完成晦炊,此時(shí)upstream依照輪詢(默認(rèn))方式進(jìn)行負(fù)載,每一個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器宁脊。假設(shè)后端服務(wù)器down掉断国。能自己主動(dòng)剔除。盡管這樣的方式簡(jiǎn)便榆苞、成本低廉稳衬。但缺點(diǎn)是:可靠性低和負(fù)載分配不均衡。
?除此之外坐漏,upstream還有其他的分配策略:
? ? weight(權(quán)重)
? ? ????????指定輪詢幾率薄疚,weight和訪問比率成正比碧信,用于后端服務(wù)器性能不均的情況。例如以下所看到的街夭。172.16.16.13的訪問比率要比172.16.16.9的訪問比率高5倍砰碴。
? ? ip_hash(訪問ip)
? ? ????????每一個(gè)請(qǐng)求按訪問ip的hash結(jié)果分配。這樣每一個(gè)訪客固定訪問一個(gè)后端服務(wù)器板丽,能夠解決session的問題衣式。
? ? fair(第三方)
? ? ????????按后端服務(wù)器的響應(yīng)時(shí)間來分配請(qǐng)求。響應(yīng)時(shí)間短的優(yōu)先分配檐什。與weight分配策略相似碴卧。
url_hash(第三方)
????????按訪問url的hash結(jié)果來分配請(qǐng)求,使每一個(gè)url定向到同一個(gè)后端服務(wù)器乃正。后端服務(wù)器為緩存時(shí)比較有效住册。這個(gè)目前還沒有研究。