低调大师

您现在的位置是: 首页 > Nginx集群部署

文章详情

Nginx集群部署

低调大师 2017-12-1 19:19 183已围观 收藏 加入我们
Nginx集群部署

搭建前环境装备

    yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel

需求(虚拟VIP:192.168.1.250)

ip 主从 Nginx端口
192.168.1.251 MASTER 80
192.168.1.252 BACKUP 80

1.先搭建Nginx服务器(参考Nginx Install)

    修改Nginx/html/index.html文件以区分Nginx

2.安装keepalived

    2.1.下载keepalived

        下载地址:http://www.keepalived.org/download.html

    2.2.解压到指定目录

        如:/data0/keepalived

    2.3.编译安装

        进入解压后的目录

        cd /data0/keepalived/keepalived-1.2.19

        2.3.1.预编译

            ./configure --prefix=/data0/keepalived

        2.3.2.安装

            make && make install

    2.4.配置keepalived

        2.4.1.创建配置文件目录

            mkdir /etc/keepalived

        2.4.2.拷贝配置文件

            cp /data0/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

            cp /data0/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

            cp /data0/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

        2.4.3.建立软连接

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

            ln -s /data0/keepalived/sbin/keepalived /sbin/

        2.4.4.设置为开机启动

            chkconfig keepalived on

        2.4.5.编辑配置文件

            vi /etc/keepalived/keepalived.conf

MASTER节点
! Configuration File for keepalived
global_defs {
## 标识本节点的字条串,通常为hostname
router_id LVS_192.168.1.251
}
## keepalived会定时执行脚本并对脚本执行的结果进行分析,动态调整vrrp_instance的优先级.
## 如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加.
## 如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少.
## 其他情况,维持原本配置的优先级,即配置文件中priority对应的值.
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" ##检测nginx状态的脚本路径
interval 2 ## 检测时间间隔
weight -20 ## 如果条件成立,权重-20
}
## 定义虚拟路由,VI_1为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
state MASTER ## 主节点为 MASTER,对应的备份节点为BACKUP
interface eth0 ## 绑定虚拟IP的网络接口,与本机IP地址所在的网络接口相同
virtual_router_id 51 ## 虚拟路由的ID号,两个节点设置必须一样,可选IP最后一段使用,相同的VRID为一个组,他将决定多播的MAC地址
mcast_src_ip 192.168.1.251 ## 本机IP地址
priority 100 ## 节点优先级,值范围0-254,MASTER要比BACKUP高
advert_int 1 ## 组播信息发送间隔,两个节点设置必须一样,默认1s
## 设置验证信息,两个节点必须一
authentication {
auth_type PASS
auth_pass XuJun321
}
## 将track_script块加入instance配置块
track_script {
chk_nginx ## 执行Nginx监控的服务
}
## 虚拟IP池,两个节点设置必须一样
virtual_ipaddress {
192.168.1.250 ## 虚拟ip,可以定义多个
## 192.168.200.17
## 192.168.200.18
}
}
BACKUP节点
! Configuration File for keepalived
global_defs {
## 标识本节点的字条串,通常为hostname
router_id LVS_192.168.1.252
}
## keepalived会定时执行脚本并对脚本执行的结果进行分析,动态调整vrrp_instance的优先级.
## 如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加.
## 如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少.
## 其他情况,维持原本配置的优先级,即配置文件中priority对应的值.
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" ##检测nginx状态的脚本路径
interval 2 ## 检测时间间隔
weight -20 ## 如果条件成立,权重-20
}
## 定义虚拟路由,VI_1为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
state BACKUP ## 主节点为 MASTER,对应的备份节点为BACKUP
interface eth0 ## 绑定虚拟IP的网络接口,与本机IP地址所在的网络接口相同
virtual_router_id 51 ## 虚拟路由的ID号,两个节点设置必须一样,可选IP最后一段使用,相同的VRID为一个组,他将决定多播的MAC地址
mcast_src_ip 192.168.1.252 ## 本机IP地址
priority 90 ## 节点优先级,值范围0-254,MASTER要比BACKUP高
advert_int 1 ## 组播信息发送间隔,两个节点设置必须一样,默认1s
## 设置验证信息,两个节点必须一
authentication {
auth_type PASS
auth_pass XuJun321
}
## 将track_script块加入instance配置块
track_script {
chk_nginx ## 执行Nginx监控的服务
}
## 虚拟IP池,两个节点设置必须一样
virtual_ipaddress {
192.168.1.250 ## 虚拟ip,可以定义多个
## 192.168.200.17
## 192.168.200.18
}
}

        2.4.6.编辑Nginx检测脚本

            vi /etc/keepalived/nginx_check.sh

nginx_check.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
/data0/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi

        2.4.7.启动keepalived

            serivce keepalived start/stop/restart/status

收藏 (0)

如果您喜欢本网站,或者本文章对您有些许帮助,那么可以打赏。

打赏多少您说了算,谢谢您对低调大师的支持!!!

支付宝扫一扫

个人博客,个人博客网站,低调大师,许军

微信扫一扫

个人博客,个人博客网站,低调大师,许军

文章评论

共有0条评论来说两句吧...