網(wǎng)站首頁 編程語言 正文
Keepalived實(shí)現(xiàn)Nginx高可用
Keepalived安裝可參考Mysql+Keepalived實(shí)現(xiàn)雙主熱備
Master上的keepalived.conf
global_defs {
?? ?router_id LVS_LEVEL1?? ?#主服務(wù)器名稱
}
?
vrrp_script check_run {
? ?script "/usr/local/src/check_nginx.sh"
? ?interval 5?? ??? ??? ??? ?#5秒執(zhí)行一次腳本
}
?
vrrp_instance VI_1 {
? ? state MASTER?? ??? ??? ?#主服務(wù)器
? ? interface eth0?? ??? ??? ?#承載VIP地址到物理接口
? ? virtual_router_id 51?? ?#虛擬路由器ID號,每個(gè)熱播組保持一致
? ? priority 100?? ??? ??? ?#優(yōu)先級,數(shù)值越大優(yōu)先級越高
? ? advert_int 1?? ??? ??? ?#檢查間隔,默認(rèn)為1s
? ? authentication {?? ??? ?#認(rèn)證信息,每個(gè)熱播組保持一致
? ? ? ? auth_type PASS ? ? ?#認(rèn)證類型
? ? ? ? auth_pass 1111?? ??? ?#密碼字串
? ? }
? ? virtual_ipaddress {
? ? ? ? 192.168.0.200?? ??? ?#VIP地址(內(nèi)網(wǎng)地址)
? ? }
? ? track_script {
? ? ? ? check_run
? ? }
}
Backup上的keepalived.conf
global_defs {
?? ?router_id LVS_LEVEL2?? ?#備份服務(wù)器名稱
}
vrrp_script check_run {
?? ?script "/usr/local/src/check_nginx.sh"
?? ?interval 5?? ??? ??? ??? ?#5秒執(zhí)行一次腳本
}
vrrp_instance VI_1 {
? ? state BACKUP?? ??? ??? ?#備份服務(wù)器
? ? interface eth0?? ??? ??? ?#承載VIP地址到物理接口
? ? virtual_router_id 51?? ?#虛擬路由器ID號,每個(gè)熱播組保持一致
? ? priority 50?? ??? ??? ??? ?#優(yōu)先級,數(shù)值越大優(yōu)先級越高
? ? advert_int 1?? ??? ??? ?#檢查間隔,默認(rèn)為1s
? ? authentication {?? ??? ?#認(rèn)證信息,每個(gè)熱播組保持一致
? ? ? ? auth_type PASS ? ? ?#認(rèn)證類型
? ? ? ? auth_pass 1111?? ??? ?#密碼字串
? ? }
? ? virtual_ipaddress {
? ? ? ? 192.168.0.200 ? ? ? #VIP地址(和主服務(wù)器設(shè)置一樣)
? ? }
? ? track_script {
? ? ? ? check_run
? ? }
}
Nginx檢測腳本check_nginx.sh
#!/bin/bash
?
A=`ps -C nginx --no-header |wc -l`
#判斷nginx是否宕機(jī),如果宕機(jī),嘗試重啟
if [ $A -eq 0 ];then
? ? /usr/local/nginx/sbin/nginx
? ? #等待一會再次檢查nginx,如果沒有啟動(dòng)成功,則停止keepalived,使其啟動(dòng)備用機(jī)
? ? sleep 5
? ? if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
? ? ? ? killall keepalived
? ? fi
fi
chmod +x /etc/keepalived/nginx_check.sh
Keepalived+Nginx高可用集群
實(shí)驗(yàn)環(huán)境
準(zhǔn)備2臺設(shè)備
設(shè)備1 192.168.217.11 nginx +keepalived
設(shè)備2 192.168.217.12 nginx +keepalived
虛擬ip 192.168.217.3
設(shè)備1、2 安裝nginx keepalived
(此處設(shè)備已安裝nginx)
我們在此基礎(chǔ)上直接利用yum安裝keepalived
更新網(wǎng)絡(luò)yum源
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
--2022-06-11 17:56:31-- ?http://mirrors.aliyun.com/repo/epel-7.repo
安裝keepalived
[root@localhost ~]# yum -y install keepalived.x86_64?
啟動(dòng)nginx
[root@localhost ~]# cd /usr/src/nginx-1.12.2/
[root@localhost nginx-1.12.2]# killall -9 nginx
[root@localhost nginx-1.12.2]# nginx
修改keepalived配置文件
[root@localhost nginx-1.12.2]# vim /etc/keepalived/keepalived.conf?
vrrp_instance VI_1 { ??
? ? state BACKUP ? ? ? ? ? ?#主調(diào)度器的初始角色(本實(shí)驗(yàn)主備MASTER 從BACKUP)
? ? interface ens33 ? ? ? ? ? ?#修改網(wǎng)卡名稱
? ? virtual_router_id 52 ? ? ?#主id 與從id ?不要重復(fù) ? ??
? ? priority 90 ? ? ? ? ? ? ? ? #主調(diào)度器的選舉優(yōu)先級 ? (本實(shí)驗(yàn) ?主備100 ?從90 ?數(shù)據(jù)越大 優(yōu)先級越高)
? ? advert_int 1 ? ? ? ? ? ?
? ? authentication {
? ? ? ? auth_type PASS
? ? ? ? auth_pass 1111
? ? }
? ? virtual_ipaddress {
? ? ? ? 192.168.217.3 ? ? ? ? ? ? ? ? ? ? ?#虛擬ip ? (本實(shí)驗(yàn)需設(shè)置 ?同網(wǎng)段 ?主從一樣)
? ? }
}
查看ip
[root@localhost ~]# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
? ? link/ether 00:0c:29:c2:15:cf brd ff:ff:ff:ff:ff:ff
? ? inet 192.168.217.11/24 brd 192.168.217.255 scope global noprefixroute ens33
? ? ? ?valid_lft forever preferred_lft forever
? ? inet 192.168.217.3/32 scope global ens33
? ? ? ?valid_lft forever preferred_lft forever
? ? inet6 fe80::1e6f:d3ee:5554:1f34/64 scope link tentative noprefixroute dadfailed?
? ? ? ?valid_lft forever preferred_lft forever
? ? inet6 fe80::ac8:77ad:9154:7983/64 scope link noprefixroute?
? ? ? ?valid_lft forever preferred_lft forever
重啟keepalived
[root@localhost ~]# systemctl start keepalived.service
[root@localhost ~]# systemctl restart keepalived.service
關(guān)閉防火墻 內(nèi)核
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
驗(yàn)證
[root@localhost ~]# curl 192.168.217.11
‘nginx1'
[root@localhost ~]# curl 192.168.217.12
‘nginx2'
[root@localhost ~]# curl 192.168.217.3
‘nginx1'
[root@localhost ~]# curl 192.168.217.3
‘nginx1'
實(shí)驗(yàn)環(huán)境?
準(zhǔn)備2臺設(shè)備 雙主keepalived
設(shè)備1 192.168.217.11 nginx +keepalived
設(shè)備2 192.168.217.12 nginx +keepalived
虛擬ip 192.168.217.3
虛擬ip 192.168.217.6
在以上實(shí)驗(yàn)基礎(chǔ)上
設(shè)備1
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 { #修改模塊名字
state MASTER #主調(diào)度器的初始角色(本實(shí)驗(yàn)主備MASTER 從BACKUP)
interface ens33 #修改網(wǎng)卡名稱
virtual_router_id 51 #主id 與從id 不要重復(fù)
priority 100 #主調(diào)度器的選舉優(yōu)先級 (本實(shí)驗(yàn) 主備100 從90 數(shù)據(jù)越大 優(yōu)先級越高)
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.217.3 #虛擬ip
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 53
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.217.6
}
I}
設(shè)備2
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.217.3
}
}
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 53
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.217.6
}
}
xshell同時(shí)開啟 命令模式 重啟keepalived
[root@localhost ~]# systemctl start keepalived.service
[root@localhost ~]# systemctl restart keepalived.service
查看ip
設(shè)備1 飄逸Ip正常
[root@localhost ~]# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:c2:15:cf brd ff:ff:ff:ff:ff:ff
inet 192.168.217.11/24 brd 192.168.217.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.217.3/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::1e6f:d3ee:5554:1f34/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::ac8:77ad:9154:7983/64 scope link noprefixroute
valid_lft forever preferred_lft forever
設(shè)備2
[root@localhost ~]# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:49:b3:a1 brd ff:ff:ff:ff:ff:ff
inet 192.168.217.12/24 brd 192.168.217.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.217.6/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::1e6f:d3ee:5554:1f34/64 scope link noprefixroute
valid_lft forever preferred_lft forever
設(shè)備1、設(shè)備2驗(yàn)證 (此問題暫未解決)
[root@localhost ~]# curl 192.168.217.11
curl: (7) Failed connect to 192.168.217.11:80; 拒絕連接
[root@localhost ~]# curl 192.168.217.12
‘nginx2'
[root@localhost ~]# curl 192.168.217.3
curl: (7) Failed connect to 192.168.217.3:80; 連接超時(shí)
[root@localhost ~]# curl 192.168.217.6
curl: (7) Failed connect to 192.168.217.6:80; 連接超時(shí)
原文鏈接:https://blog.csdn.net/qq_39581637/article/details/122317862
相關(guān)推薦
- 2022-10-11 Filter過濾器和Listener監(jiān)聽器
- 2023-07-24 可拖拽表格保存拖拽順序,按照拖拽順序進(jìn)行下載
- 2022-09-22 k8s 配置存儲之 Configmap & secret
- 2022-04-27 一篇文章了解正則表達(dá)式的替換技巧_正則表達(dá)式
- 2022-08-01 GoLand一鍵上傳項(xiàng)目到遠(yuǎn)程服務(wù)器的方法步驟_Golang
- 2022-12-07 React中路由的參數(shù)傳遞路由的配置文件詳解_React
- 2022-09-27 Golang利用位運(yùn)算實(shí)現(xiàn)為程序加速_Golang
- 2022-10-07 Flutter?GetPageRoute實(shí)現(xiàn)嵌套導(dǎo)航學(xué)習(xí)_IOS
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支