nginx集群_使用Nginx+Tomcat+keepalived 搭建高性能高可用性负载均衡集群
在互聯(lián)網(wǎng)項(xiàng)目中,往往面臨著高用戶(hù)量、高并發(fā)的問(wèn)題,造成服務(wù)器的壓力非常大,特別是電商項(xiàng)目,以淘寶天貓為例,近年雙十一的成交量屢創(chuàng)新高,可想而知淘寶天貓的服務(wù)器面臨的并發(fā)量有多大,單一服務(wù)器肯定承受不住。這些互聯(lián)網(wǎng)項(xiàng)目的服務(wù)器一般都是采用集群部署的方式,實(shí)現(xiàn)負(fù)載均衡。
開(kāi)始搭建之前,我們先來(lái)了解其中涉及到比較重要的一些概念。
一、反向代理
1.1什么是反向代理
反向代理(Reverse Proxy)方式是指以代理服務(wù)器來(lái)接受internet上的連接請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請(qǐng)求連接的客戶(hù)端,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)反向代理服務(wù)器。
簡(jiǎn)單來(lái)說(shuō)就是正向代理是針對(duì)你的客戶(hù)端,如下圖:
反向代理是針對(duì)服務(wù)器,如下圖:
1.2反向代理的配置
這里使用nginx作為反向代理服務(wù)器。
(1)在nginx主機(jī)修改nginx配置文件
upstream tomcat-portal {
server xxx(你的tomcat安裝的服務(wù)器的ip):8080;
}
server {
listen 80;
server_name xxxx(你項(xiàng)目訪問(wèn)的域名);
location / {
proxy_pass http://tomcat-portal;
index index.html;
}
二、負(fù)載均衡
2.1什么是負(fù)載均衡
負(fù)載均衡 建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價(jià)有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。英文名稱(chēng)為L(zhǎng)oad Balance,其意思就是分?jǐn)偟蕉鄠€(gè)操作單元上進(jìn)行執(zhí)行,例如Web服務(wù)器、FTP服務(wù)器、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等,從而共同完成工作任務(wù)。
使用nginx+tomcat實(shí)現(xiàn)的負(fù)載均衡,Nginx作為負(fù)載均衡器,web發(fā)起額所有請(qǐng)求都到Nginx,Nginx再將請(qǐng)求轉(zhuǎn)發(fā)到Tomcat服務(wù)器,示意圖如下:
2.2負(fù)載均衡的配置
在3臺(tái)服務(wù)器上分別安裝Tomcat,在Nginx的配置文件中分別指向這3臺(tái)服務(wù)器的ip+Tomcat端口。
修改 Nginx配置文件:
upstream tomcat-portal {
server Tomcat1的ip:8080;
server Tomcat2的ip:8080;
server Tomcat3的ip:8080;
}
server {
listen 80;
server_name xxxx(你項(xiàng)目訪問(wèn)的域名);
location / {
proxy_pass http://tomcat-portal;
index index.html;
}
}
通過(guò)以上配置,訪問(wèn)項(xiàng)目時(shí),3臺(tái)服務(wù)器將會(huì)共同分擔(dān)系統(tǒng)訪問(wèn)的壓力。
三、高可用性
上面已經(jīng) 說(shuō)到Nginx作為負(fù)載均衡器,所有請(qǐng)求都先到Nginx,假如Nginx服務(wù)器宕機(jī),那么后面的web服務(wù)器將無(wú)法提供服務(wù)。為了防止出現(xiàn)這種情況,需要建立一個(gè)備份機(jī),主機(jī)和備份機(jī)都運(yùn)行高可用(High Availability)監(jiān)控程序,當(dāng)主機(jī)宕機(jī),備份機(jī)提供服務(wù),主機(jī)好了之后,備份機(jī)釋放服務(wù)ip,主機(jī)再次提供服務(wù)。
keepalived 就是一款集群管理中保證集群高可用的一個(gè)軟件,用來(lái)防止單點(diǎn)故障。Keepalived 的作用是檢測(cè) web 服務(wù)器的狀態(tài),如果有一臺(tái) web 服務(wù)器死機(jī),或工作出現(xiàn)故障,Keepalived 將檢測(cè)到,并將有故障的 web 服務(wù)器從系統(tǒng)中剔除,當(dāng) web 服務(wù)器工作正常后 Keepalived 自動(dòng)將 web 服務(wù)器加入到服務(wù)器群中,這些工作全部自動(dòng)完成,不需要人工干涉,需要人工做的只是修復(fù)故障的 web 服務(wù)器。
在Nginx的主機(jī)和備份機(jī)上都安裝keepalived軟件。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的nginx集群_使用Nginx+Tomcat+keepalived 搭建高性能高可用性负载均衡集群的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: oschina mysql limit_
- 下一篇: 基于Flask+Nginx+uWSGI实