安装配置nginx负载均衡模式--具体步骤略
配置举例:
upstream lb.os.com {
# ip_hash;
server 192.168.1.52;
server 192.168.1.51;
# server 192.168.1.117 down; //暂不参与负载均衡
# server 192.168.1.118 max_fails=3 fail_timeout=20s; //连接失败次数3,超时20s.
}
安装keeplived
安装keepalived
#tar -zxvf keepalived-1.2.7.tar.gz
#./configure --prefix=/usr/local/keepalived
#make && make install
# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
# mkdir /etc/keepalived
# cp /usr/local/keepalived/etc/keepalived.conf /etc/keepalived
配置keeplived
# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
admin@company.com (这里可以定义多个报警邮箱)
}
notification_email_from alarm@company.com (报警人)
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id Nginx1
}
vrrp_script chk_http_port {
script "/opt/sh/check_nginx.sh"
interval 2 (检测的间隔)
weight 2
}
vrrp_instance Nginx_HA {
state MASTER (显示定义为主服务器)
interface eth1 (绑定的网口,该网口即上面提到的两个IP的接口)
virtual_router_id 51 (定义的ID,官方的是 51,主从服务器必须一直)
mcast_src_ip 172.18.0.10 (主服务器的IP)
priority 100 (优先级,任意定义,但是一定要比从服务器高)
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 (默认即可)
}
track_script {
chk_http_port (调用检测脚本)
}
virtual_ipaddress {
172.18.0.100 (绑定的虚IP)
}
}
主从配置几乎一致,注意如下:
0. state BACKUP
1. routerid保持唯一
2. priority 50 #优先级数值大的被推举为主设备
脚本
vim /opt/sh/check_nginx.sh
#!/bin/bash
nginxpid=`ps -C nginx --no-header | wc -l`
if [ $nginxpid -eq 0 ];then
/usr/bin/killall nginx
/usr/local/nginx/sbin/nginx
sleep 3
nginxpid=`ps -C nginx --no-header | wc -l`
echo $nginxpid
if [ $nginxpid -eq 0 ];then
/etc/init.d/keepalived stop
fi
fi
启动命令
#/etc/init.d/keepalived start
查看命令:
# ip a