首页 > 系统相关 >nginx+keepalived 主备实现高可用

nginx+keepalived 主备实现高可用

时间:2022-08-19 13:22:07浏览次数:55  
标签:etc firewall keepalived nginx 主备 usr local

nginx+keepalived 主,当一台主机挂掉,由备用主机顶上

主机:

192.168.59.102:master

192.168.59.103:backup

 

1、安装nginx(两台主机都安装)

https://www.cnblogs.com/leihongnu/p/16265539.html

将nginx首页编辑为:102和103方便区分

 

2、安装keepalived(两台主机都安装)

安装下载地址:https://github.com/acassen/keepalived/tags

挑一个版本下载,解压

#tar -zxvf keepalived-1.4.5.tar.gz

编译

#cd keepalived-1.4.5

#安装路径为/usr/local/keepalived

#./configure --prefix=/usr/local/keepalived --with-init=SYSV

# make && make install

拷贝配置文件到系统目录方便启动

# mkdir /etc/keepalived

# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

# ln -s /usr/local/sbin/keepalived /usr/sbin/

# ln -s /usr/local/keepalived/sbin/keepalived /sbin/

编辑脚本 /etc/keepalived/nginx_check.sh(两台服务器都要编辑)

#!/bin/bash
A=`netstat -tnlp | grep 80 | grep nginx | wc -l`

if [ $A -eq 0 ];then

#nginx关闭,/usr/local/nginx/sbin/nginx重启
/usr/local/nginx/sbin/nginx
sleep 2
if [ `netstat -tnlp | grep 80 | grep nginx | wc -l` -eq 0 ];then
# 重启不行nginx则关闭keepalived服务
systemctl stop keepalived
fi
fi

给脚本添加执行权限

#chmod +x /etc/keepalived/nginx_check.sh

 

编辑配置文件 192.168.59.102 master

vi /etc/keepalived/keepalived.conf 

! Configuration File for keepalived

global_defs {
notification_email {
[email protected]
[email protected]
[email protected]   #健康检查报告通知邮箱
}
notification_email_from [email protected]  #发送邮件的地址
smtp_server 127.0.0.1   #邮件服务器
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script_chk_nginx {
script "/etc/keepalived/nginx_check.sh"   #检查本地nginx是否存活脚本
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER    #定义为从,可选项MASTER|BACKUP
interface enp0s3  #使用的网卡 可以用ip addr查看
virtual_router_id 51  #定义组ID,matser和backup必须一致
priority 100  #优先级 master必须比backup大(0-250)
advert_int 1  #多久在组里广播一下自己的心跳信息,默认单位为秒s
nopreempt
authentication {
auth_type PASS

auth_pass 1111  #主从两个服务器的字符串要设定为相同的
}
virtual_ipaddress {
192.168.59.211/24   #虚拟ip
}
track_script {
chk_nginx
}
}

 

 

编辑配置文件 192.168.59.103 backup

vi /etc/keepalived/keepalived.conf 

! Configuration File for keepalived

global_defs {
notification_email {
[email protected]
[email protected]
[email protected]   #健康检查报告通知邮箱
}
notification_email_from [email protected]  #发送邮件的地址
smtp_server 127.0.0.1   #邮件服务器
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script_chk_nginx {
script "/etc/keepalived/nginx_check.sh"   #检查本地nginx是否存活脚本
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP #定义为从,可选项MASTER|BACKUP
interface enp0s3  #使用的网卡 可以用ip addr查看
virtual_router_id 51  #定义组ID,matser和backup必须一致
priority 90 #优先级 master必须比backup大(0-250)
advert_int 1  #多久在组里广播一下自己的心跳信息,默认单位为秒s
nopreempt
authentication {
auth_type PASS

auth_pass 1111  #主从两个服务器的字符串要设定为相同的
}
virtual_ipaddress {
192.168.59.211/24   #虚拟ip
}
track_script {
chk_nginx
}
}

3、启动nginx和keepalived服务

 

 

 4、验证

关闭192.168.59.102的keepalived服务

 

标签:etc,firewall,keepalived,nginx,主备,usr,local
From: https://www.cnblogs.com/leihongnu/p/16601639.html

相关文章

  • keepalived 虚拟ip可以切换(漂移),但无法通过虚拟ip访问(curl: (7) Failed connect to 192
    虚拟ip可切换  关闭192.168.59.102上的keepalived  但是访问超时:curl:(7)Failedconnectto192.168.59.211:8088;Connectiontimedout 修改MASTER路由和......
  • Nginx 反向代理实例1
     一、实现效果打开浏览器,在浏览器地址栏输入地址www.123.com,跳转到liunx系统tomcat主页面中  二、准备工作在linux中安装tomcathttps://www.cnblogs.com/zy......
  • nginx.conf 配置文件
     一、位置vim/usr/local/nginx/conf/nginx.conf 二、配置文件中的内容(包含三部分) 1、全局块:配置服务器整体运行的配置指令从配置文件开始到events块之间的内......
  • Nginx 常用命令
    查看版本:./nginx-v启动:./nginx关闭(有两种方式,推荐使用./nginx-squit):./nginx-sstop./nginx-squit重新加载Nginx配置:./nginx-sreload作者:架......
  • 主从复制nginx
    前言:准备两台MySQL,一台主(Master)服务器,一台从(Slave)服务器,主库的数据变更,需要同步到从库中(主从复制)。而用户在访问我们项目时,如果是写操作(insert、update、delete),则......
  • pg14.3主备切换时报错
    一、报错:[postgres@dba01archive]$pg_ctl-D/data/pg14startwaitingforservertostart....2022-08-1816:11:43.883CST[45459]LOG:redirectinglogoutputto......
  • FastAPI+Gunicorn+Nginx部署(超详细)
    前言系统使用:Ubuntu22.04(用户名:ubuntu)Python版本:Python3.10(虚拟环境:fastapi_env)数据库:MySQL5.7本项目使用以下工具FastAPIGunicornuvicornNginx......
  • rpm方式升级nginx1.22
    目录rpm方式升级nginx1.221、下载升级包及所依赖包2、安装替换之前的版本rpm方式升级nginx1.221、下载升级包及所依赖包nginx1.22下载地址:http://nginx.org/packages/rh......
  • Nginx_安装配置后,浏览器不能访问配置的站点ip:防火墙
    一、检查nginx安装成功[root@localhostsoftRyc]#/usr/local/webserver/nginx/sbin/nginx-vnginxversion:nginx/1.21.2 二、配置检查成功[root@localhostconf]#......
  • 评分管理系统环境部署:JDK1.8,nginx:1.14.0,redis 6.2.4 ,mysql 8.0.22
    背景:环境要求服务器上部署项目,需要JDK1.8,nginx:1.14.0,redis6.2.4,mysql8.0.22,使用在线安装版本或者docker版本;linux的版本是CentOs7.4(cat/etc/redhat-release);jdk......