linux配置nginx主从/集群

主要是利用的keepalived为nginx做的集群配置

1.下载依赖

在开始做配置前我们需要先下载几个依赖文件,这里我把包提供到网盘中,记得所有的都要下载

提取链接:阿里云盘分享

提取码:6v7x

2.安装依赖

将下载好的所有安装包导入到你需要安装集群的linux系统中

上传本地文件到服务器

scp /path/filename username@servername:/path

例如scp /var/www/test.php root@192.168.0.101:/var/www/ #把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中,例如:

 离线安装gcc

$ cd /data/gcc

$ rpm -ivh *.rpm --force

离线安装openssl-devel

$ cd /data/openssl-devel

$ rpm -ivh *.rpm --force

离线安装keepalived

$ cd /data/keepalived

$ rpm -ivh *.rpm --force

(这里说一下为什么是*.rpm:因为需要安装的服务他们之间有循环依赖问题,所以如果不是安装所有的话,可能会出现安装报错/失败的问题)

安装完成之后首先停止服务:

systemctl stop keepalived 停止

3.配置keepalived

配置文件与重要参数说明

首先切换到配置文件的目录下  cd /etc/keepalived/keepalived.conf

这里以master配置为例,配置如下:

! Configuration File for keepalived

global_defs {
   script_user root           #指定脚本运行的用户为root用户
   enable_script_security     #启用脚本安全检查
   router_id nginx-140		#主机标识
}

vrrp_script chk_bl {
    script "/etc/keepalived/chk_bl.sh"	#自己写的监测脚本位置,脚本需要授权 
    interval 2     #间隔2秒执行一次脚本
    weight -2      #查看weight的解释,控制权限
}

vrrp_instance VI_1 {          #指定VRRP实例
    state MASTER			#只有BACKUP和MASTER。MASTER为工作状态,BACKUP是备用状态		
    interface ens192		#interface:为网卡接口:可通过ip addr查看自己的网卡接口,修改为本机网卡名称
    virtual_router_id 60	#virtual_router_id:虚拟路由标志。同组的virtual_router_id应该保持一致
    priority 102   		#priority:设置本节点的优先级,优先级高的为master
    advert_int 2              #通告间隔,默认为1秒
    authentication {		#设置验证类型和密码,两个节点必须一致
      auth_type PASS
      auth_pass 0101
    }
    virtual_ipaddress {    #对外提供服务的IP配置,虚拟ip地址
       192.168.1.81					
    }
   track_script {
       chk_bl     #检查是否切换
    }

}

这里的chk_bl是一个sh脚本文件,文件内容如下:

可以直接用,放到对应目录下即可:

#!/bin/bash

function ck() {
  A=`ps -C nginx --no-header | wc -l`
  if [ $A -eq 0 ]; then
    exit 1
  else
    exit 0
  fi
}

ck

从配置只需要修改state 和主机标识即可

同时为了防止jar包服务宕机导致在keepalived存活的情况下也访问不到服务,我们还需要在nginx的配置中配置upstream

以我如下配置为例子:

#认证
upstream auth {
    server 10.237.2.33:9090 max_fails=1 fail_timeout=50000;
    server 10.237.2.34:9090 max_fails=1 fail_timeout=50000;
    server 10.237.2.35:9090 max_fails=1 fail_timeout=50000;
}
# 管理
upstream admin {
    server 10.237.2.38:10010 max_fails=1 fail_timeout=50000;
    server 10.237.2.39:10010 max_fails=1 fail_timeout=50000;
}

不同的服务器中这里的配置可能有些出入,你只需要找到upstream,并在其内部添加你的服务器ip端口即可,注意添加完成之后重启nginx然后再重启keepalived(因为keepalived保证nginx高可用的前提是nginx)

配置完成之后启动keepalived即可,附上启停命令:

systemctl start keepalived 启动

systemctl stop keepalived 停止

systemctl restart keepalived 重启

systemctl status keepalived 查看状态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值