溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Keepalived+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群

發(fā)布時(shí)間:2021-12-13 09:23:30 來(lái)源:億速云 閱讀:263 作者:iii 欄目:服務(wù)器

這篇文章主要介紹“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)的高可用;

Keepalived+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群

環(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的安裝

Keepalived+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群

2、Keepalived的安裝

Keepalived+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群

3、配置Keepalived + Nginx,實(shí)現(xiàn)高可用

準(zhǔn)備的2臺(tái)服務(wù)器上,一臺(tái)作為MASTER,一臺(tái)作為BACKUP;每臺(tái)上需要準(zhǔn)備文件如下圖

Keepalived+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群

執(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目錄

Keepalived+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群

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+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群

keepalived.service配置

Keepalived+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群

nginx.service配置

Keepalived+Nginx+Tomcat怎么部署高可用負(fù)載均衡集群

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í)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI