您好,登錄后才能下訂單哦!
這篇文章主要介紹“Keepalived+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群”,在日常操作中,相信很多人在Keepalived+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群?jiǎn)栴}上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Keepalived+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
初期應(yīng)用較小,一般以單機(jī)部署為主,即可滿足業(yè)務(wù)的需求,隨著業(yè)務(wù)的不斷擴(kuò)大,單機(jī)部署的模式無(wú)法承載這么大的業(yè)務(wù)量,需要進(jìn)行服務(wù)集群化的部署,本文主要介紹服務(wù)器Tomcat多實(shí)例部署,搭載Keepalived + Nginx,實(shí)現(xiàn)Web服務(wù)的高可用。
Nginx 是一個(gè)高性能的 HTTP反向代理服務(wù)器
Keepalived 是一個(gè)基于VRRP協(xié)議來(lái)實(shí)現(xiàn)的服務(wù)高可用方案,可以利用其來(lái)避免服務(wù)的單點(diǎn)故障
Nginx作為反向代理服務(wù)器,來(lái)提供負(fù)載均衡的能力,使我們的Web服務(wù)器,能夠水平擴(kuò)容,這時(shí)反向代理服務(wù)器(Nginx)又變成了一個(gè)單點(diǎn),如果掛掉,整合Web服務(wù)器就不能被外界訪問(wèn)到;所以需要結(jié)合Keepalived來(lái)保障反向代理服務(wù)器(Nginx)的高可用;
環(huán)境準(zhǔn)備
CentOS7系統(tǒng)
Keepalived-2.0.15
Nginx-1.14.2
Tomcat8
準(zhǔn)備2臺(tái)服務(wù)器,每臺(tái)上部署安裝Nginx+Keepalived和Tomcat,另外一個(gè)VIP(虛擬IP);這里省略了2臺(tái),這樣在實(shí)際模擬中方便演練(Tomcat不單獨(dú)部署在一臺(tái)服務(wù)器而已)
1、Nginx的安裝
2、Keepalived的安裝
3、配置Keepalived + Nginx,實(shí)現(xiàn)高可用
準(zhǔn)備的2臺(tái)服務(wù)器上,一臺(tái)作為MASTER,一臺(tái)作為BACKUP;每臺(tái)上需要準(zhǔn)備文件如下圖
執(zhí)行如下的約定,上面安裝腳本也是按照這個(gè)執(zhí)行的
1. keepalived 和 nginx 都編譯安裝到/usr/local目錄下面,名稱分別是keepalived 和 nginx
2. ck_ng.sh、 keepalived.conf 文件放置到/etc/keepalived/目錄, ck_ng.sh文件權(quán)限設(shè)置成755
3. nginx.service、 keepalived.service 文件放置到/usr/lib/systemd/system目錄
3.1、MASTER配置
keepalived.conf配置
global_defs { #notification_email { # localhost@163.com #} #notification_email_from Keepalived@localhost #smtp_server 163@smtp.com #smtp_connect_timeout 30 router_id 192.168.1.101 #MASTER服務(wù)器的IP地址 } #配置vrrp_script,主要用于健康檢查,以及檢查失敗后執(zhí)行的動(dòng)作。 vrrp_script chk_nginx { #健康檢查腳本,當(dāng)腳本返回值不為0時(shí)認(rèn)為失敗 script "/etc/keepalived/ck_ng.sh" #檢查頻率,以下配置每2秒檢查1次 interval 2 #當(dāng)檢查失敗后,將vrrp_instance的priority減小5 weight -5 #連續(xù)監(jiān)測(cè)失敗3次,才認(rèn)為真的健康檢查失敗。并調(diào)整優(yōu)先級(jí) fall 3 #連續(xù)監(jiān)測(cè)2次成功,就認(rèn)為成功。但不調(diào)整優(yōu)先級(jí) rise 2 } #定義對(duì)外提供服務(wù)的VIP vrrp_instance配置 vrrp_instance VI_1 { #指定vrrp_instance的初始狀態(tài),是MASTER還是BackUP主要還是看優(yōu)先級(jí)。 state MASTER #指定vrrp_instance綁定的網(wǎng)卡,最終會(huì)通過(guò)指定的網(wǎng)卡宣告VIP interface ifcfg-eth0 #發(fā)送心跳包的源IP,可使用綁定的網(wǎng)卡IP,也可以使用本服務(wù)器上的其他IP mcast_src_ip 192.168.1.101 #相當(dāng)于VRID,用于在一個(gè)網(wǎng)內(nèi)區(qū)分組播,需要組播域內(nèi)內(nèi)唯一。 virtual_router_id 55 #本機(jī)的優(yōu)先級(jí),VRID相同的機(jī)器中,優(yōu)先級(jí)最高的會(huì)被選舉為MASTER priority 100 #心跳間隔,下面配置,MASTER會(huì)每隔1秒發(fā)送一個(gè)報(bào)文高職組內(nèi)其他機(jī)器,自己還活著。 advert_int 1 #定義主從的驗(yàn)證方式以及密碼,一般使用PASS(最長(zhǎng)8位,超過(guò)了只會(huì)識(shí)別前8位作為密碼) authentication { auth_type PASS auth_pass 123456 } #VIP 虛擬 IP 池, 兩個(gè)節(jié)點(diǎn)設(shè)置必須一樣 virtual_ipaddress { 192.168.1.100/24 } #本vrrp_instance所引用的腳本配置,名稱就是vrrp_script 定義的容器名 track_script { chk_nginx } #狀態(tài)切換,使用上述配置發(fā)送郵件通知 smtp_alert }
ck_ng.sh配置
keepalived.service配置
nginx.service配置
3.2、BACKUP配置
keepalived.conf配置(和MASTER類似,列出差異的地方)
global_defs { router_id 192.168.1.102 } #定義對(duì)外提供服務(wù)的VIP vrrp_instance配置 vrrp_instance VI_1 { #指定vrrp_instance的初始狀態(tài),是MASTER還是BackUP主要還是看優(yōu)先級(jí)。 state BACKUP #發(fā)送心跳包的源IP,可使用綁定的網(wǎng)卡IP,也可以使用本服務(wù)器上的其他IP mcast_src_ip 192.168.1.102 #本機(jī)的優(yōu)先級(jí),VRID相同的機(jī)器中,優(yōu)先級(jí)最高的會(huì)被選舉為MASTER priority 99 }
ck_ng.sh配置(和MASTER一致)
keepalived.service配置(和MASTER一致)
nginx.service配置(和MASTER一致)
3.3、Tomcat服務(wù)通過(guò)反向代理Nginx對(duì)外提供服務(wù)
Tomcat的安裝和應(yīng)用部署不再具體描述,主要看一下如何通過(guò)Nginx的配置實(shí)現(xiàn)對(duì)外服務(wù)(兩個(gè)Nginx都通過(guò)這樣的配置來(lái)完成)
nginx.conf配置
# upstream configure upstream myapp { ip_hash; server 192.168.1.101:8080; #Tomcat的應(yīng)用 server 192.168.1.102:8080; #Tomcat的應(yīng)用 } server { listen 8888; #假設(shè)對(duì)外提供的服務(wù)端口 server_name localhost; port_in_redirect on; location /app1 #Tomcat下的一個(gè)應(yīng)用 { proxy_pass http://myapp/app1; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /app2 #Tomcat下的另外一個(gè)應(yīng)用 { proxy_pass http://myapp/app2; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location / { proxy_pass http://myapp; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
到此,關(guān)于“Keepalived+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。