這篇文章主要介紹“Keepalived+Nginx+Tomcat怎么部署高可用負載均衡集群”,在日常操作中,相信很多人在Keepalived+Nginx+Tomcat怎么部署高可用負載均衡集群問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Keepalived+Nginx+Tomcat怎么部署高可用負載均衡集群”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
創(chuàng)新互聯(lián)公司科技有限公司專業(yè)互聯(lián)網基礎服務商,為您提供眉山服務器托管,高防服務器租用,成都IDC機房托管,成都主機托管等互聯(lián)網服務。
初期應用較小,一般以單機部署為主,即可滿足業(yè)務的需求,隨著業(yè)務的不斷擴大,單機部署的模式無法承載這么大的業(yè)務量,需要進行服務集群化的部署,本文主要介紹服務器Tomcat多實例部署,搭載Keepalived + Nginx,實現Web服務的高可用。
Nginx 是一個高性能的 HTTP反向代理服務器
Keepalived 是一個基于VRRP協(xié)議來實現的服務高可用方案,可以利用其來避免服務的單點故障
Nginx作為反向代理服務器,來提供負載均衡的能力,使我們的Web服務器,能夠水平擴容,這時反向代理服務器(Nginx)又變成了一個單點,如果掛掉,整合Web服務器就不能被外界訪問到;所以需要結合Keepalived來保障反向代理服務器(Nginx)的高可用;
環(huán)境準備
CentOS7系統(tǒng)
Keepalived-2.0.15
Nginx-1.14.2
Tomcat8
準備2臺服務器,每臺上部署安裝Nginx+Keepalived和Tomcat,另外一個VIP(虛擬IP);這里省略了2臺,這樣在實際模擬中方便演練(Tomcat不單獨部署在一臺服務器而已)
1、Nginx的安裝
2、Keepalived的安裝
3、配置Keepalived + Nginx,實現高可用
準備的2臺服務器上,一臺作為MASTER,一臺作為BACKUP;每臺上需要準備文件如下圖
執(zhí)行如下的約定,上面安裝腳本也是按照這個執(zhí)行的
1. keepalived 和 nginx 都編譯安裝到/usr/local目錄下面,名稱分別是keepalived 和 nginx
2. ck_ng.sh、 keepalived.conf 文件放置到/etc/keepalived/目錄, ck_ng.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服務器的IP地址 } #配置vrrp_script,主要用于健康檢查,以及檢查失敗后執(zhí)行的動作。 vrrp_script chk_nginx { #健康檢查腳本,當腳本返回值不為0時認為失敗 script "/etc/keepalived/ck_ng.sh" #檢查頻率,以下配置每2秒檢查1次 interval 2 #當檢查失敗后,將vrrp_instance的priority減小5 weight -5 #連續(xù)監(jiān)測失敗3次,才認為真的健康檢查失敗。并調整優(yōu)先級 fall 3 #連續(xù)監(jiān)測2次成功,就認為成功。但不調整優(yōu)先級 rise 2 } #定義對外提供服務的VIP vrrp_instance配置 vrrp_instance VI_1 { #指定vrrp_instance的初始狀態(tài),是MASTER還是BackUP主要還是看優(yōu)先級。 state MASTER #指定vrrp_instance綁定的網卡,最終會通過指定的網卡宣告VIP interface ifcfg-eth0 #發(fā)送心跳包的源IP,可使用綁定的網卡IP,也可以使用本服務器上的其他IP mcast_src_ip 192.168.1.101 #相當于VRID,用于在一個網內區(qū)分組播,需要組播域內內唯一。 virtual_router_id 55 #本機的優(yōu)先級,VRID相同的機器中,優(yōu)先級最高的會被選舉為MASTER priority 100 #心跳間隔,下面配置,MASTER會每隔1秒發(fā)送一個報文高職組內其他機器,自己還活著。 advert_int 1 #定義主從的驗證方式以及密碼,一般使用PASS(最長8位,超過了只會識別前8位作為密碼) authentication { auth_type PASS auth_pass 123456 } #VIP 虛擬 IP 池, 兩個節(jié)點設置必須一樣 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 } #定義對外提供服務的VIP vrrp_instance配置 vrrp_instance VI_1 { #指定vrrp_instance的初始狀態(tài),是MASTER還是BackUP主要還是看優(yōu)先級。 state BACKUP #發(fā)送心跳包的源IP,可使用綁定的網卡IP,也可以使用本服務器上的其他IP mcast_src_ip 192.168.1.102 #本機的優(yōu)先級,VRID相同的機器中,優(yōu)先級最高的會被選舉為MASTER priority 99 }
ck_ng.sh配置(和MASTER一致)
keepalived.service配置(和MASTER一致)
nginx.service配置(和MASTER一致)
3.3、Tomcat服務通過反向代理Nginx對外提供服務
Tomcat的安裝和應用部署不再具體描述,主要看一下如何通過Nginx的配置實現對外服務(兩個Nginx都通過這樣的配置來完成)
nginx.conf配置
# upstream configure upstream myapp { ip_hash; server 192.168.1.101:8080; #Tomcat的應用 server 192.168.1.102:8080; #Tomcat的應用 } server { listen 8888; #假設對外提供的服務端口 server_name localhost; port_in_redirect on; location /app1 #Tomcat下的一個應用 { 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下的另外一個應用 { 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; } }
到此,關于“Keepalived+Nginx+Tomcat怎么部署高可用負載均衡集群”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
當前文章:Keepalived+Nginx+Tomcat怎么部署高可用負載均衡集群
鏈接分享:http://vcdvsql.cn/article20/gjogjo.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供移動網站建設、用戶體驗、搜索引擎優(yōu)化、手機網站建設、品牌網站設計、
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)