網站首頁 編程語言 正文
Keepalived+Nginx 高可用集群(主從模式)
集群架構圖
1、準備兩臺裝有Nginx虛擬機
2、都需安裝Keepalived
yum install keepalived -y
查看是否安裝成功
rpm -q -a keepalived
安裝之后,在 etc 里面生成目錄 keepalived,有文件 keepalived.conf ?
3、完成高可用配置(主從配置)
修改/etc/keepalived/keepalivec.conf 配置文件
主服務配置:keepalivec.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.19.129
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2 #(檢測腳本執行的間隔)
weight 2
}
vrrp_instance VI_1 {
state MASTER # 備份服務器上將 MASTER 改為 BACKUP
interface ens33 //網卡
virtual_router_id 51 # 主、備機的 virtual_router_id 必須相同
priority 100 # 主、備機取不同的優先級,主機值較大,備份機值較小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.19.50 # VRRP H 虛擬地址(非真實物理地址)
}
}
從服務配置:keepalivec.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.19.129
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2 #(檢測腳本執行的間隔)
weight 2
}
vrrp_instance VI_1 {
state BACKUP # 備份服務器上將 MASTER 改為 BACKUP
interface ens33 //網卡
virtual_router_id 51 # 主、備機的 virtual_router_id 必須相同
priority 90 # 主、備機取不同的優先級,主機值較大,備份機值較小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.19.50 # VRRP H 虛擬地址(非真實物理地址)
}
}
在/usr/local/src 添加檢測腳本,兩臺虛擬機都要添加
添加文件:nginx_check.sh
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
把兩臺服務器上 nginx 和 keepalived 啟動 重新啟動 nginx 啟動 keepalived:
systemctl start keepalived.service
檢驗keepalived是否啟動成功
ps -ef | grep keepalived
最終測試 在瀏覽器地址欄輸入 虛擬 ip 地址 192.168.17.50訪問
在master 輸入 ip a 可以查看到
?停止主服務器仍可以訪問從服務器
systemctl stop keepalived.service
docker stop mynginx
原文鏈接:https://blog.csdn.net/qq_29385297/article/details/127828384
相關推薦
- 2022-07-04 PyTorch深度學習LSTM從input輸入到Linear輸出_python
- 2023-05-08 Python中Generators教程的實現_python
- 2022-04-22 arm-linux使用qt開發并加入openssl
- 2022-11-17 python數學模塊(math/decimal模塊)_python
- 2023-04-02 Android自定義View實現動畫效果詳解_Android
- 2021-12-13 C++繼承類成員訪問權限修飾符詳解_C 語言
- 2022-06-16 Python中弱引用的神奇用法與原理詳解_python
- 2022-09-21 go?mod詳細使用教程_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支