keepalive+nginx负载均衡
来源:互联网 发布:s7总决赛现场数据 编辑:程序博客网 时间:2024/05/21 11:31
一、双机主备:
主机:
! Configuration File for keepalived#全局配置global_defs { notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个 acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc #指定发件人 #smtp_server 192.168.200.1 #指定smtp服务器地址 #smtp_connect_timeout 30 #指定smtp连接超时时间 router_id LVS_DEVEL #运行keepalived机器的一个标识}vrrp_instance VI_1 { state MASTER #标示状态为MASTER 备份机为BACKUP interface eth0 #设置实例绑定的网卡 virtual_router_id 51 #同一实例下virtual_router_id必须相同 priority 100 #MASTER权重要高于BACKUP 比如BACKUP为99 advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒 authentication { #设置认证 auth_type PASS #主从服务器验证方式 auth_pass 8888 } virtual_ipaddress { #设置vip 192.168.0.55 #可以多个虚拟IP,换行即可 }}
备机:
! Configuration File for keepalived#全局配置global_defs { notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个 acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc #指定发件人 #smtp_server 192.168.200.1 #指定smtp服务器地址 #smtp_connect_timeout 30 #指定smtp连接超时时间 router_id LVS_DEVEL #运行keepalived机器的一个标识}vrrp_instance VI_1 { state BACKUP #标示状态为MASTER 备份机为BACKUP interface eth0 #设置实例绑定的网卡 virtual_router_id 51 #同一实例下virtual_router_id必须相同 priority 99 #BACKUP权重要低于MASTAER 比如MASTER为100 advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒 authentication { #设置认证 auth_type PASS #主从服务器验证方式 auth_pass 8888 } virtual_ipaddress { #设置vip 192.168.0.55 #可以多个虚拟IP,换行即可 }}
二、双主热备:
主机1:
! Configuration File for keepalived#全局配置global_defs { notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个 acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc #指定发件人 #smtp_server 192.168.200.1 #指定smtp服务器地址 #smtp_connect_timeout 30 #指定smtp连接超时时间 router_id LVS_DEVEL #运行keepalived机器的一个标识}vrrp_instance VI_1 { state MASTER #标示状态为MASTER 备份机为BACKUP interface eth0 #设置实例绑定的网卡 virtual_router_id 51 #同一实例下virtual_router_id必须相同 priority 150 #MASTER权重要高于BACKUP 比如BACKUP为100 advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒 authentication { #设置认证 auth_type PASS #主从服务器验证方式 auth_pass 8888 } virtual_ipaddress { #设置vip 192.168.0.55 #可以多个虚拟IP,换行即可 }}vrrp_instance VI_2 { state BACKUP #标示状态为MASTER 备份机为BACKUP interface eth0 #设置实例绑定的网卡 virtual_router_id 52 #同一实例下virtual_router_id必须相同 priority 100 #MASTER权重要高于BACKUP 比如BACKUP为99 advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒 authentication { #设置认证 auth_type PASS #主从服务器验证方式 auth_pass 8888 } virtual_ipaddress { #设置vip 192.168.0.56 #可以多个虚拟IP,换行即可 }}
主机2:
! Configuration File for keepalived#全局配置global_defs { notification_email { #指定keepalived在发生切换时需要发送email到的对象,一行一个 acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc #指定发件人 #smtp_server 192.168.200.1 #指定smtp服务器地址 #smtp_connect_timeout 30 #指定smtp连接超时时间 router_id LVS_DEVEL #运行keepalived机器的一个标识}vrrp_instance VI_1 { state BACKUP #标示状态为MASTER 备份机为BACKUP interface eth0 #设置实例绑定的网卡 virtual_router_id 51 #同一实例下virtual_router_id必须相同 priority 100 #MASTER权重要高于BACKUP 比如BACKUP为99 advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒 authentication { #设置认证 auth_type PASS #主从服务器验证方式 auth_pass 8888 } virtual_ipaddress { #设置vip 192.168.0.55 #可以多个虚拟IP,换行即可 }}vrrp_instance VI_2 { state MASTER #标示状态为MASTER 备份机为BACKUP interface eth0 #设置实例绑定的网卡 virtual_router_id 52 #同一实例下virtual_router_id必须相同 priority 150 #MASTER权重要高于BACKUP 比如BACKUP为99 advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒 authentication { #设置认证 auth_type PASS #主从服务器验证方式 auth_pass 8888 } virtual_ipaddress { #设置vip 192.168.0.56 #可以多个虚拟IP,换行即可 }}
三、keepalive监控nginx:
keepalived本身只是监控自身的进程是否挂掉,如果机器并没有挂机,只是nginx挂了,那么keepalived是不会做切换主备的,所以我们需要写个脚本来监控nginx进程是否存在。
1、定义nginx监控脚本check_nginx.sh,内容如下:
#!/bin/bash# 如果进程中没有nginx则将keepalived进程kill掉A=`ps -C nginx --no-header |wc -l` ## 查看是否有 nginx进程 把值赋给变量A if [ $A -eq 0 ];then ## 如果没有进程值得为 零 service keepalived stop ## 则结束 keepalived 进程fi
2、上传脚本:
上传脚本check_nginx.sh到/etc/keepalived目录。
设置check_nginx.sh脚本可执行权限:
chmod 755 check_nginx.sh 或者 chmod +x check_nginx.sh
如果执行脚本出错,需要使用dos2unix工具转化下格式:
安装dos2unix: yum -y install dos2unix
使用:dos2unix check_nginx.sh
3、修改keepalived.conf:
定义keepalived监控脚本:
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh" ##nginx监控脚本
interval 2 ##时间间隔,2秒
weight 2 ##权重
}
在实例中加入启用监控:
vrrp_instance VI_1 {
state BACKUP #标示状态为MASTER备份机为BACKUP
interface eth0 #设置实例绑定的网卡
virtual_router_id 51 #同一实例下virtual_router_id必须相同
priority 100 #MASTER权重要高于BACKUP比如BACKUP为99
advert_int 1 #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication { #设置认证
auth_type PASS #主从服务器验证方式
auth_pass 8888
}
virtual_ipaddress { #设置vip
192.168.0.55 #可以多个虚拟IP,换行即可
}
track_script {
check_nginx #监控脚本
}
}
附:keepalived安装:
1. 安装环境
su - root
yum -y install kernel-devel*
yum -y install openssl-*
yum -y install popt-devel
yum -y install lrzsz
yum -y install openssh-clients
yum -y install libnl libnl-devel popt
2. 安装keepalived
2.1. 上传keepalived安装文件
1、cd /usr/local/src/
2、mkdir keepalived
3、cd keepalived/
4、wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz 或者 rz 上传
2.2. 解压
1、tar -xvf keepalived-1.2.15.tar.gz
2、cd keepalived-1.2.15
2.3. 安装keepalived
1、cd keepalived
2、执行配置命令
./configure
3、编译
make
4、安装
make install
5、拷贝执行文件
cp /usr/local/sbin/keepalived /usr/sbin/
6、将init.d文件拷贝到etc下,加入开机启动项
cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
7、将keepalived文件拷贝到etc下,加入网卡配置
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
8、创建keepalived文件夹
mkdir -p /etc/keepalived
9、将keepalived配置文件拷贝到etc下
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
10、添加可执行权限
chmod +x /etc/init.d/keepalived
2.4. 加入开机启动:
chkconfig --add keepalived
chkconfig keepalived on
3. 配置日志文件
1.将keepalived日志输出到local0:
vi /etc/sysconfig/keepalived
KEEPALIVED_OPTIONS="-D -d -S 0"
2.在/etc/rsyslog.conf里添加:
local0.* /var/log/keepalived.log
3.重新启动keepalived和rsyslog服务:
service rsyslog restart
service keepalived restart
4. 打开防火墙的通讯地址
iptables -A INPUT -d 224.0.0.18 -j ACCEPT
/etc/rc.d/init.d/iptables save
- (负载均衡)nginx+keepalive
- keepalive+nginx负载均衡
- nginx + keepalive 实现高可用负载均衡
- nginx+keepalive实现高可用负载均衡
- nginx+keepalive实现高可用负载均衡
- Nginx+Keepalive实现高可用负载均衡
- 负载均衡(haproxy+keepalive)
- Nginx+keepalive实现高可用热备负载均衡
- keepalive + Nginx实现高可用性及负载均衡
- ngnix+keepalive负载均衡搭建
- Nginx之——Nginx+Keepalive 实现高可用负载均衡方案
- linux搭建LVS+keepalive+nginx实现集群高性能负载均衡配置详解
- nginx负载均衡【nginx】
- KeepAlive+LVS 实现高可用负载均衡
- nginx配置负载负载均衡
- nginx负载均衡
- Nginx负载均衡
- Nginx 负载均衡 简介
- Maven学习总结(七)——eclipse中使用Maven创建Web项目
- 用Python和Pygame写游戏-从入门到精通(2)事件
- 【荐】Angular 最佳实践
- Python获取帮助详解
- C++ 零碎知识点集锦 一
- keepalive+nginx负载均衡
- WrapPanel
- 时间段重复校验-js
- Retrofit源码分析 (四. Retrofit 官网说明,Copy)
- Mysql时区问题
- 一直没搞清楚的数组sort方法传入一个function是怎么运行的
- 三、解决Springboot集成ActivitiModel提示输入密码的问题
- Gym
- Tomcat集群配置学习篇(MARK)