深圳云網(wǎng)站建站公司搜索引擎的設(shè)計(jì)與實(shí)現(xiàn)
目錄
一:負(fù)載均衡介紹
二、 負(fù)載均衡具備的功能
1.提高服務(wù)器性能
2.提高系統(tǒng)可用性
3.提高系統(tǒng)的可伸縮性
4.實(shí)現(xiàn)流量均衡
三、示例配置,如何使用nginx實(shí)現(xiàn)負(fù)載均衡
四、負(fù)載均衡策略配置
1.基于輪詢的負(fù)載均衡(默認(rèn))
2. 基于權(quán)重(weight)的負(fù)載均衡
3. 基于IP HASH的負(fù)載均衡
五、 后端配合
一:負(fù)載均衡介紹
nginx 是一個(gè)高性能的 Web 服務(wù)器和反向代理服務(wù)器,可以用來(lái)實(shí)現(xiàn)負(fù)載均衡。nginx 的負(fù)載均衡功能是通過(guò)配置upstream塊來(lái)實(shí)現(xiàn)的。在upstream塊中,可以配置多個(gè)后端服務(wù)器,并且可以通過(guò)各種算法來(lái)選擇其中一個(gè)服務(wù)器來(lái)處理請(qǐng)求。
二、負(fù)載均衡具備的功能
1.提高服務(wù)器性能
負(fù)載均衡可以將請(qǐng)求分配到多個(gè)服務(wù)器上,從而提高服務(wù)器的處理能力和響應(yīng)速度。
2.提高系統(tǒng)可用性
當(dāng)一臺(tái)服務(wù)器出現(xiàn)故障時(shí),負(fù)載均衡可以將請(qǐng)求自動(dòng)轉(zhuǎn)移到其他正常的服務(wù)器上,從而避免系統(tǒng)停機(jī)。
3.提高系統(tǒng)的可伸縮性
當(dāng)系統(tǒng)負(fù)載增加時(shí),可以通過(guò)添加更多的服務(wù)器來(lái)擴(kuò)展系統(tǒng)的處理能力。
4.實(shí)現(xiàn)流量均衡
負(fù)載均衡服務(wù)器通過(guò)某種調(diào)度算法將流量分配到不同的應(yīng)用程序服務(wù)器,以確保每個(gè)服務(wù)器都能得到合理的工作量,避免過(guò)載。
三、示例配置,如何使用nginx實(shí)現(xiàn)負(fù)載均衡
?
http {upstream backend {server 192.168.116.12:8081;server 192.168.116.12:8082;}server {listen 80;location / {proxy_pass http://backend;}}?
?在上面的配置中,我們定義了一個(gè)名為backend的upstream塊,其中列出了三個(gè)后端服務(wù)器:backend1.example.com、backend2.example.com和backend3.example.com。然后,在server塊中,我們將請(qǐng)求代理到backend,這樣nginx就會(huì)從這三個(gè)后端服務(wù)器中選擇一個(gè)來(lái)處理請(qǐng)求。
nginx提供了多種負(fù)載均衡算法,例如:權(quán)重(weight)、輪詢(round-robin)、IP哈希(ip-hash)??梢酝ㄟ^(guò)在upstream塊中使用相應(yīng)的配置指令來(lái)實(shí)現(xiàn)不同的算法。
四、負(fù)載均衡策略配置
1.基于輪詢的負(fù)載均衡(默認(rèn))
每個(gè)請(qǐng)求,按時(shí)間順序逐一分配到不同的后端應(yīng)用服務(wù)器節(jié)點(diǎn),如果后端服務(wù)出現(xiàn)故障,nginx能夠自動(dòng)剔除該節(jié)點(diǎn),具體配置方式如上述demo示例配置;
2.基于權(quán)重(weight)的負(fù)載均衡
權(quán)重(weight)默認(rèn)值為1,權(quán)重越高,被分配的請(qǐng)求數(shù)量越多。
例如:A節(jié)點(diǎn)權(quán)重=2,B節(jié)點(diǎn)權(quán)重=1,則請(qǐng)求會(huì)按照A:B=2:1的方式輪詢。
配置參考如下:
3.基于IP HASH的負(fù)載均衡
每個(gè)請(qǐng)求,按照訪問(wèn)IP的hash結(jié)果分配,由于hash值為不重復(fù)的唯一值,因此每個(gè)請(qǐng)求能夠固定訪問(wèn)同一個(gè)后端服務(wù)器,這樣可以做到會(huì)話保持,解決session同步問(wèn)題。
配置參考如下:
?
http {ip_hash;upstream backend {server 192.168.116.12:8080;server 192.168.116.12:8081;}server {listen 80;location / {proxy_pass http://backend;}}?
-
五、后端配合
對(duì)于后端來(lái)說(shuō),配合相對(duì)簡(jiǎn)單,只需要啟動(dòng)多個(gè)后端服務(wù)即可;
注意:后端啟動(dòng)的端口號(hào)要和上方配置nginx的端口保持一致。