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

Nginx+keepalived实现nginx高可用

时间:2023-11-21 11:23:29浏览次数:33  
标签:nginx keepalived Nginx vrrp 服务器 local id

1,keepalived工作原理

nginx的安装已有现成文档,就不重新编写文档了

本文讲述主、从服务器各一台

2, 主、从服务器上安装keepalived

1.使用yum安装keepalived

yum -y install keepalived

2.查看keepalived是否安装成功,出现版本即成功

rpm -q -a keepalived

3,主、从服务器上修改keepalived配置(配置文件路径:/etc/keepalived/keepalived.conf)

1)主服务上修改配置

! Configuration File for keepalived

global_defs {
   router_id just01 
}

vrrp_script chk_nginx {
    script "/usr/local/src/nginx_check.sh"  #脚本文件路径
    interval 3  # 检测脚本执行的间隔:3s
    weight 2  #权重,如果这个脚本检测为真,服务器权重+2
}

vrrp_instance VI_1 {
    state MASTER   # 指定keepalived的角色,MASTER为主,BACKUP为备。备份服务器上需将MASTER 改为BACKUP
    interface ens192  # 通信端口 通过ip addr可以看到,根据自己的机器配置
    virtual_router_id 51  # vrrp实例id  keepalived集群的实例id必须一致,即主、备机的virtual_router_id必须相同
    priority 100  #优先级,数值越大,获取处理请求的优先级越高。主、备机取不同的优先级,主机值较大,备份机值较小
    advert_int 1  #心跳间隔,默认为1s。keepalived多机器集群 通过心跳检测当前服务器是否还正常工作,如果发送心跳没反应,备份服务器就会立刻接管;
    authentication {
        auth_type PASS  #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
        auth_pass justech  #密码,主备服务器的要设成一样
    }
    virtual_ipaddress {
        10.66.53.200 # 定义虚拟ip(VIP),可多设,每行一个,需要是公司中未使用的ip,最好跟服务器真实ip的网段一样,比如测试环境10.66.53 正式环境10.66.52
    }
	 track_script {
		   chk_nginx  #定义脚本名称,与上面的 vrrp_script 的值一致
	 }
}

2)从服务上修改配置

! Configuration File for keepalived

global_defs {
   router_id just02
}

vrrp_script chk_nginx {
    script "/usr/local/src/nginx_check.sh"  #脚本文件路径
    interval 3  # 检测脚本执行的间隔:3s
    weight 2  #权重,如果这个脚本检测为真,服务器权重+2
}

vrrp_instance VI_1 {
    state BACKUP  # 指定keepalived的角色,MASTER为主,BACKUP为备。
    interface ens192   # 通信端口 通过ip addr可以看到,根据自己的机器配置
    virtual_router_id 51 # vrrp实例id  keepalived集群的实例id必须一致,即主、备机的virtual_router_id必须相同
    priority 80  #优先级,数值越大,获取处理请求的优先级越高。主、备机取不同的优先级,主机值较大,备份机值较小
    advert_int 1  #心跳间隔,默认为1s。keepalived多机器集群 通过心跳检测当前服务器是否还正常工作,如果发送心跳没反应,备份服务器就会立刻接管;
    authentication {
        auth_type PASS  #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
        auth_pass justech  #密码,主备服务器的要设成一样
    }
    virtual_ipaddress {
        10.66.53.200  # 定义虚拟ip(VIP),可多设,每行一个,需要是公司中未使用的ip,最好跟服务器真实ip的网段一样,比如测试环境10.66.53 正式环境10.66.52
    }
	track_script {
		chk_nginx #定义脚本名称,与上面的 vrrp_script 的值一致
	}
}

4,主、从服务器上新增脚本文件,用于重启nginx或关闭keepalived

1) 创建文件

touch /usr/local/src/nginx_check.sh

2) 修改脚本文件内容

1.使用vim修改脚本文件

vim /usr/local/src/nginx_check.sh

2.将下面内容复制到脚本文件中

#! /bin/bash
#检测nginx是否启动了
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #启动nginx,视各个服务器上的nginx启动命令决定
 sleep 2 #睡眠2秒
 if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
  systemctl stop keepalived.service #启动失败,将keepalived服务杀死。将vip漂移到其它备份节点
 fi
fi

注意:里面的启动nginx配置需要修改成主、从服务器上对应的启动命令

3) 对/usr/local/src/nginx_check.sh赋可执行权限

chmod 777 /usr/local/src/*.sh

5,启动相关服务

1) 启动nginx

1.如果以启动,则忽略

2) 启动keepalived

1.启动keepalived

systemctl start keepalived.service

2.查看keepalived是否启动成功

ps -ef|grep  keepalived

3.补充关闭、重启keepalived命令
关闭:

systemctl stop keepalived.service

重启:

systemctl restart keepalived.service

标签:nginx,keepalived,Nginx,vrrp,服务器,local,id
From: https://www.cnblogs.com/fantongxue/p/17846191.html

相关文章

  • 编译nginx使用systemctl 开启关闭脚本
    [Unit]Description=nginx-highperformancewebserverDocumentation=http://nginx.org/en/docs/After=network-online.targetremote-fs.targetnss-lookup.targetWants=network-online.target[Service]Type=forkingPIDFile=/apps/nginx/logs/nginx.pidExecStart......
  • centos7.9 部署FastDFS+Nginx本地搭建文件服务器 高性能的文件服务器集群 同时实现在
    前言FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线......
  • Nginx实现基于请求头的访问控制配置
    在Nginx中,可以使用"allow"和"deny"指令来实现IP访问限制。"allow"指令用于允许特定的IP地址或IP地址段访问服务器,"deny"指令用于阻止特定的IP地址或IP地址段访问服务器。以下是一个简单的配置示例:复制12345location/{    deny192.168.0.1;    allow19......
  • Nginx实现基于IP地址的访问控制配置
    一、Nginx配置中的IP地址变量在Nginx的配置文件中,通过一些变量来表示客户端的IP地址。其中最常用的是$remote_addr变量,它代表了客户端的IP地址。二、简单的IP地址过滤配置允许特定IP地址访问复制1234location/{  allow192.168.1.100;  denyall;}......
  • Nginx实现基于请求URL的请求重写配置
    在Nginx中,可以使用rewrite指令来进行请求重写。其基本语法如下:复制1rewriteregexreplacement[flag];其中,regex表示正则表达式,用于匹配当前请求URL;replacement表示目标URL,替换原来的URL;flag是可选的标志位,用于控制重写的行为。例如,下面的重写规则可以将以“/pa......
  • 命令行方式启动nginx
    果nginx在d:/software/nginx目录下,那么命令行启动方式是:1、进入d:/software/nginx目录下复制1cdd:/software/nginx2、启动nginx复制1startnginx3、如果需要关闭nginx,则执行如下命令:复制1nginx-sstop......
  • nginx 启用SSL证书
    #usernobody;worker_processes1;#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidlogs/nginx.pid;events{worker_connections1024;}http{includemime.types;defau......
  • Nginx限制IP访问配置,提升网站安全性
    Nginx限制IP访问配置,提升网站安全性随着互联网的快速发展,网络安全问题逐渐受到人们的重视。对于网站管理员来说,确保服务器的安全是非常重要的。Nginx作为一款高性能的Web服务器,具有灵活的配置选项,可以通过限制IP访问来提升网站的安全性。本文将介绍如何在Nginx中配置IP访问限制,并......
  • Nginx实现Cookie的访问控制配置
    通过基于Cookie的访问控制配置,可以限制用户访问特定的页面或资源。本文将介绍如何使用Nginx来实现这样的访问控制,并给出具体的代码示例。开启Nginx的http_auth_request模块首先,需要确保Nginx已经启用了http_auth_request模块。如果没有启用,可以通过编辑Nginx配置文件添加该模块。......
  • 局域网yum部署通过nginx
    局域网yum部署一、下载rpm包1.CentOS7.9下载#安装依赖包yum-yinstallyum-utilscreaterepo#下载rpmreposync-n--repoid=base--repoid=updates--repoid=extras-p/data2.OracleLinux7.9下载#安装依赖包yum-yinstallyum-utilscreaterepo#下载rpmrep......