sudo cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0:0 DEVICE=eth0:0 >>> 这个需要修改
TYPE=Ethernet
UUID=8ddbb256-caab-4ddf-8e9a-6527b4ac5a26
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.1.50 >>> 这个需要修改
PREFIX=24
GATEWAY=192.168.1.1
DNS1=101.226.4.6
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0:0" >>> 这个需要修改
HWADDR=00:0c:29:f4:17:db
LAST_CONNECT=1460213205
service network restartsudo yum install -y gcc openssl-devel popt-develcd /opt/setups/ ; tar zxvf keepalived-1.2.20.tar.gzcd /opt/setups/keepalived-1.2.20 ; ./configure --prefix=/usr/program/keepalivedmake && make installcp /usr/program/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalivedchmod +x /etc/init.d/keepalivedvim /etc/init.d/keepalived
把 15 行的:. /etc/sysconfig/keepalived,改为:
. /usr/program/keepalived/etc/sysconfig/keepalived(注意:前面有一个点和空格需要注意)
vim /etc/profile
# Keepalived 配置
KEEPALIVED_HOME=/usr/program/keepalived
PATH=$PATH:$KEEPALIVED_HOME/sbin
export KEEPALIVED_HOME
export PATH
source /etc/profilekeepalived -vln -s /usr/program/keepalived/sbin/keepalived /usr/sbin/vim /usr/program/keepalived/etc/sysconfig/keepalived
把 14 行的:KEEPALIVED_OPTIONS="-D",改为:
KEEPALIVED_OPTIONS="-D -f /usr/program/keepalived/etc/keepalived/keepalived.conf"
chkconfig keepalived onchmod 755 /opt/bash/nginx_check.shsh /opt/bash/nginx_check.sh,如果没有报错,则表示改脚本没有问题
Keepalived_vrrp[5684]: pid 5959 exited with status 1 worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# (重点)
upstream tomcatCluster {
server 192.168.1.122:8080 weight=1;
server 192.168.1.123:8080 weight=1;
}
# (重点)
server {
listen 80;
server_name 192.168.1.50;
location / {
proxy_pass http://tomcatCluster;
index index.html index.htm;
}
}
}
vim /usr/program/keepalived/etc/keepalived/keepalived.conf ! Configuration File for keepalived
# 全局配置
global_defs {
# 邮箱通知配置,keepalived 在发生切换时需要发送 email 到的对象,一行一个
notification_email {
#acassen@firewall.loc
#failover@firewall.loc
#sysadmin@firewall.loc
}
# 指定发件人
#notification_email_from Alexandre.Cassen@firewall.loc
# 指定smtp服务器地址
#smtp_server 192.168.200.1
# 指定smtp连接超时时间,单位秒
#smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_strict
}
# (重点)脚本监控实现
vrrp_script check_nginx {
# 运行脚本
script "/opt/bash/nginx_check.sh"
# 时间间隔,2秒
interval 2
# 权重
weight 2
}
vrrp_instance VI_1 {
# (重点)Backup 机子这里是设置为:BACKUP
state MASTER
interface eth0
virtual_router_id 51
# (重点)Backup 机子要小于当前 Master 设置的 100,建议设置为 99
priority 100
# Master 与 Backup 负载均衡器之间同步检查的时间间隔,单位是秒
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
# (重点)配置虚拟 IP 地址,如果有多个则一行一个
virtual_ipaddress {
192.168.1.50
}
# (重点)脚本监控调用
track_script {
check_nginx
}
}
service iptables stopsh /usr/program/tomcat8/bin/startup.sh ; tail -200f /usr/program/tomcat8/logs/catalina.out
http://192.168.1.122:8080http://192.168.1.123:8080/usr/local/nginx/sbin/nginxservice keepalived starttail -f /var/log/messagestail -f /var/log/messages
service keepalived stoptail -f /var/log/messages
service keepalived restarttail -f /var/log/messages
/usr/local/nginx/sbin/nginx -s stoptail -f /var/log/messages
/usr/local/nginx/sbin/nginx -s reloadservice keepalived restartEntering to MASTER STATE,变成 Master 状态
Netlink reflector reports IP 192.168.1.50 added,一般变为 Master 状态,都要重新加入虚拟 IP,一般叫法叫做:虚拟 IP 重新漂移到 Master 机子上Entering BACKUP STATE,变成 Backup 状态
Netlink reflector reports IP 192.168.1.50 removed,一般变为 Backup 状态,都要移出虚拟 IP,一般叫法叫做:虚拟 IP 重新漂移到 Master 机子上VRRP_Script(check_nginx) succeeded,监控脚本执行成功