根据真实生产环境 总结。
硬件:共计2台Linux服务器 76和77 每台服务器都安装 Nginx Keepalive Tomcat
80做为虚拟ip,负责对外链接。 78和79是两台mysql数据库,读写分离。
效果:若是一台服务器产生故障,另外一台立刻接替服务
重点:在于keepalive心跳的配置
安装过程此处省略……
安装完成后首先配置 Keepalive
1.Keepalive
两台服务器端keepalived.conf内容都为以下,都设置为backup,不抢占
(76)主机
! Configuration File for keepalived
global_defs {
notification_email {
xxxx@139.com
切换等操做时 email通知邮件地址
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id HTTP_HA
}
vrrp_sync_group VG_1 {
同步组设置
group {
VI_1
}
#notify_master /home/notify_master.sh
#notify_backup /home/notify_backup.sh
#notify_fault /home/notify_fault.sh
}
vrrp_instance VI_1 {
实例设置
preempt_delay 300
抢占延迟
state BACKUP
实例初始状态(肯定主备)
#smtp_alert
interface eth0
实例节点固有IP(非VIP)的网卡,用来发VRRP包
virtual_router_id 51
设置VRID这里很是重要 相同的VRID为一个组他将决定多播的MAC地址
advert_int 1
检查间隔默认为1秒
authentication {
auth_type PASS
认证方式能够是PASS或AH两种认证方式
auth_pass 1111
认证密码
}
nopreempt # backup server comment it
(从机 注释此参数)
priority 150 # backup server change to 100
用来选举master的
数字越大,优先级越高
virtual_ipaddress {
设置虚拟IP
10.0.0.80/24 dev eth0
}
}
(77)从机
! Configuration File for keepalived
global_defs {
notification_email {
xxxx@139.com
切换等操做时 email通知邮件地址
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id HTTP_HA
}
vrrp_sync_group VG_1 {
同步组设置
group {
VI_1
}
#notify_master /home/live800/working/keepalived/notify_master.sh
#notify_backup /home/live800/working/keepalived/notify_backup.sh
#notify_fault /home/live800/working/keepalived/notify_fault.sh
}
vrrp_instance VI_1 {
实例设置
preempt_delay 300
抢占延迟
state BACKUP
实例初始状态(肯定主备)
#smtp_alert
interface eth0
实例节点固有IP(非VIP)的网卡,用来发VRRP包
virtual_router_id 51
设置VRID这里很是重要 相同的VRID为一个组他将决定多播的MAC地址
advert_int 1
检查间隔默认为1秒
authentication {
auth_type PASS
认证方式能够是PASS或AH两种认证方式
auth_pass 1111
认证密码
}
#nopreempt # backup server comment it
(从机 注释此参数)
priority 100 # backup server change to 100
用来选举master的
数字越大,优先级越高
virtual_ipaddress {
设置虚拟IP 能够设置多个
10.0.0.80/24 dev eth0
}
}
2.Nginx
这里只列出主要几行配置
(10.0.0.76)
(10.0.0.77)
upstream TomcatServer {
server 127.0.0.1:8080 max_fails=0 fail_timeout=10s;
}
server {server_name localhost;
listen 80;
include proxy.conf;
location / {
proxy_pass http://TomcatServer;
}
location /ns {include stub_status.conf;}
}
}
3.Tomcat
没必要作特殊设置