六nginx 搭建高可用集群
Posted Amy清风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了六nginx 搭建高可用集群相关的知识,希望对你有一定的参考价值。
1、什么是 nginx 高可用
-
(1)需要两台 nginx 服务器
-
(2)需要 keepalived
-
(3)需要虚拟 ip
2、配置高可用的准备工作
(1)需要两台服务器 192.168.17.129 和 192.168.17.131
(2)在两台服务器安装 nginx
(3)在两台服务器安装 keepalived
3、在两台服务器安装 keepalived
(1)使用 yum 命令进行安装
yum install keepalived –y
(2)查看keepalived是否安装
rpm -q -a keepalived
(3)安装之后,在 /etc 里面生成目录 keepalived,有文件 keepalived.conf
4、完成高可用配置(主从配置)
Keepalived + Nginx 配合使用
主机192.168.17.129 Nginx
(1)修改/etc/keepalived/keepalivec.conf
配置文件
! Configuration File for keepalived
#全局配置
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.17.129 # 主服务器IP地址
smtp_connect_timeout 30
router_id LVS_DEVEL # 主机名字是在hosts里面配置的如:127.0.0.1 LVS_DEVEL,也可以是主机IP
}
#脚本配置
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh" #检测脚本的位置
interval 2 #(检测脚本执行的间隔)
weight 2 # 权重
}
#虚拟IP的配置
vrrp_instance VI_1 {
state MASTER # 备份服务器上将 MASTER 改为 BACKUP
interface eth1 # 网卡,通过ifconfig查看你自己的网卡
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1 #每隔1秒发送一个心跳检测一下,主机是否还活着
#使用权限的一种方式,需要密码,密码为1111
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.17.50 # VRRP H 虚拟地址IP,可以绑定多个虚拟地址IP
}
}
(2)在/usr/local/src
添加检测脚本:nginx_check.sh
#!/bin/bash
A=`ps -C nginx –no-header | wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx #检测nginx是否挂掉
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
从机 Nginx
(1)修改/etc/keepalived/keepalivec.conf
配置文件
! Configuration File for keepalived #全局配置 global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.17.129 # 主服务器IP地址 smtp_connect_timeout 30 router_id LVS_DEVEL # 主机名字是在hosts里面配置的如:127.0.0.1 LVS_DEVEL,也可以是主机IP } #脚本配置 vrrp_script chk_http_port { script "/usr/local/src/nginx_check.sh" #检测脚本的位置 interval 2 #(检测脚本执行的间隔) weight 2 # 权重 } #虚拟IP的配置 vrrp_instance VI_1 { state BACKUP # 备份服务器上将 MASTER 改为 BACKUP interface eth1 # 网卡,通过ifconfig查看你自己的网卡 virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同 priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小 advert_int 1 #每隔1秒发送一个心跳检测一下,主机是否还活着 #使用权限的一种方式,需要密码,密码为1111 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.17.50 # VRRP H 虚拟地址IP,可以绑定多个虚拟地址IP } }
(2)在/usr/local/src
添加检测脚本:nginx_check.sh
#!/bin/bash A=`ps -C nginx –no-header | wc -l` if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx #检测nginx是否挂掉 sleep 2 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then killall keepalived fi fi
启动 Nginx
分别启动主从 Nginx ,切换到/usr/local/nginx/sbin/,执行
./nginx
启动 Nginx ,如果已经启动过,就选择重启
./nginx -s reload
测试 Nginx 是否启动成功
ps -ef | grep nginx
启动 keepalived
启动 keepalived
service keepalived start
1
停止 keepalived
service keepalived stop
1
重启 keepalived
service keepalived restart
以上是关于六nginx 搭建高可用集群的主要内容,如果未能解决你的问题,请参考以下文章
Nginx+Keepalived搭建高可用负载平衡WEB 集群