centos部署nginx集群

部署nginx集群,一台nginx出故障,另外的nginx能直接使用(这里用两台做实验)

规划:143.1.26.212是主,143.1.26.213是从,143.1.26.214是VIP(vip是客户访问的ip)

小白教程,一看就会,一做就成。

1.安装nginx(nginx-1.16.1为例)(两台服务器都部署一下)

之前有写

centos7部署nginx-CSDN博客

2.安装keepalived(两台都安装keepalived,212是主,213是从)

yum -y install keepalived

3.添加检测脚本(两台nginx都操作,一样的)

#创建一个文件夹
mkdir /usr/local/nginx/src
#编辑脚本
vim /usr/local/nginx/src/nginx_check.sh
#内容如下

#!/bin/bash
#检测nginx是否启动了
Y=`ps -C nginx --no-header |wc -l`        
if [ $Y -eq 0 ];then    #如果nginx没有启动就启动nginx                        
      systemctl start nginx                #重启nginx
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重启失败,则停掉keepalived服务,进行VIP转移
              killall keepalived                    
      fi
fi


#给脚本加权限
chmod +x /usr/local/nginx/src/nginx_check.sh

4.修改143.1.26.212的keepalived配置文件

#先备份配置文件
cd /etc/keepalived/
cp -a keepalived.conf keepalived.conf_bak

#编辑文件
vim /etc/keepalived/keepalived.conf
#内容可以替换成下面的

! Configuration File for keepalived

#检测脚本
vrrp_script chk_http_port {
    script "/usr/local/nginx/src/nginx_check.sh" #心跳执行的脚本,检测nginx是否启动
    interval 2                          #(检测脚本执行的间隔,单位是秒)
    weight 2                            #权重
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
    state MASTER            # 指定keepalived的角色,MASTER为主,BACKUP为备
    interface ens192         # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ip add查看你具体的网卡
    virtual_router_id 77    # 虚拟路由编号,主从要一致
    priority 100            # 优先级,数值越大,获取处理请求的优先级越高
    advert_int 1            # 检查间隔,默认为1s(vrrp组播周期秒数)
    #授权访问
    authentication {
        auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
        auth_pass yegoo@123
    }
    track_script {
        chk_http_port            #(调用检测脚本)
    }
    virtual_ipaddress {
        143.1.26.214            # 定义虚拟ip(VIP),可多设,每行一个
    }
}

5.修改143.1.26.213的keepalived配置文件

#先备份配置文件
cd /etc/keepalived/
cp -a keepalived.conf keepalived.conf_bak

#编辑文件
vim /etc/keepalived/keepalived.conf
#内容可以替换成下面的

! Configuration File for keepalived

#检测脚本
vrrp_script chk_http_port {
    script "/usr/local/nginx/src/nginx_check.sh" #心跳执行的脚本,检测nginx是否启动
    interval 2                          #(检测脚本执行的间隔)
    weight 2                            #权重
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
    state BACKUP                        # 指定keepalived的角色,MASTER为主,BACKUP为备
    interface ens192                      # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ip add查看你具体的网卡
    virtual_router_id 77                # 虚拟路由编号,主从要一致
    priority 99                         # 优先级,数值越大,获取处理请求的优先级越高
    advert_int 1                        # 检查间隔,默认为1s(vrrp组播周期秒数)
    #授权访问
    authentication {
        auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
        auth_pass yegoo@123
    }
    track_script {
        chk_http_port                   #(调用检测脚本)
    }
    virtual_ipaddress {
        143.1.26.214                   # 定义虚拟ip(VIP),可多设,每行一个
    }
}

6.注意

virtual_ipaddress 里面可以配置vip,在线上通过vip来访问服务。
interface需要根据服务器网卡进行设置通常查看方式ip add
authentication配置授权访问后备机也需要相同配置

7.完成

相关推荐
恩爸编程19 分钟前
Linux 防火墙:守护系统安全的坚固防线
linux·运维·系统安全·linux防火墙·linux防火墙是什么·linux关闭防火墙·linux查看防火墙状态
Vegetable_xu24 分钟前
【Websocket和nginx配置】
websocket·网络协议·nginx
加勒比之杰克44 分钟前
【数据库初阶】Linux中库的基础操作
android·linux·数据库·mysql·增删改查·cpp·crud
豆是浪个1 小时前
Linux(Centos 7.6)目录结构详解
linux·运维·centos
AnnyYoung1 小时前
centos server系统新装后的网络配置
linux·网络·centos
rickys20801 小时前
Ubuntu修改swap大小
linux·运维·ubuntu
乌龟跌倒1 小时前
应用层2——FTP文件传输协议
linux·服务器·网络
令狐掌门1 小时前
linux ext4文件系统
linux·ext4
Lang_xi_1 小时前
认识Linux的Bash
linux·运维·bash
千千道1 小时前
Linux 标准 I/O 库
linux·arm开发·arm