设为首页 收藏本站
查看: 6546|回复: 0

[经验分享] LVS+keepalived+nginx+tomcat部署实现(转载)

[复制链接]

尚未签到

发表于 2016-12-26 12:17:42 | 显示全部楼层 |阅读模式
# 拓扑如下所示
DSC0000.jpg
2台前端 keepalived+lvs,热备的方式,保证一台lvs前端能正常访问就行,如果一台down,另外一台热备升级到master主机
master: 192.168.1.210 ubuntu 12.0.4
salve: 192.168.1.211 ubuntu 12.0.4

后端2台web服务器通过lvs的算法轮询被访问
web1: 192.168.1.204 centos 5.10 nginx+tomcat
web2: 192.168.1.206 centos 5.10 nginx+tomcat

vip: 192.168.1.207
1:首先 web1和web2都不用装ipvsadm和keepalived,只要启用一个脚本即可,
当然你已经把nginx+tomcat已经配置完,并能正常访问页面



vim realserver.sh




#!/bin/bash  
#   
# Script to start LVS DR real server.   
# description: LVS DR real server   
#   
.  /etc/rc.d/init.d/functions
VIP=192.168.1.207   #这里根据需要改成自己的VIP地址
host=`/bin/hostname`
case "$1" in  
start)   
# Start LVS-DR real server on this machine.   
/sbin/ifconfig lo down   
/sbin/ifconfig lo up   
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore   
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce   
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore   
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up  
/sbin/route add -host $VIP dev lo:0
;;  
stop)
# Stop LVS-DR real server loopback device(s).  
/sbin/ifconfig lo:0 down   
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore   
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce   
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore   
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
;;  
status)
# Status of LVS-DR real server.  
islothere=`/sbin/ifconfig lo:0 | grep $VIP`   
isrothere=`netstat -rn | grep "lo:0" | grep $VIP`   
if [ ! "$islothere" -o ! "isrothere" ];then   
# Either the route or the lo:0 device   
# not found.   
echo "LVS-DR real server Stopped."   
else   
echo "LVS-DR real server Running."   
fi   
;;   
*)   
# Invalid entry.   
echo "$0: Usage: $0 {start|status|stop}"   
exit 1   
;;   
esac




chmod +x realserver.sh




./realserver.sh start



可通过ifconfig和route -n来查询刚才脚本实现的功能
如果可以把此脚本放在启动时运行



ifconfig




route -n



2:然后再master和salve分别安装ipvsadm和keepalived
yum install -y keepalived ipvsadm (centos redhat)
或者
apt-get install keepalived ipvsadm (debian ubuntu)

安装完ipvsadm和keepalived,不用配置lvs,直接用keepalived来启用lvs就行
在master主机设置:


vim /etc/keepalived/keepalived.conf




global_defs
{
router_id master_210
}
 
vrrp_instance shengzc {
state MASTER
interface eth0
virtual_router_id 100    #这个数值 master和slave必须统一
priority 151     #这个数值决定哪台服务器是master
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.1.207
}
}
virtual_server 192.168.1.207 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
#            persistence_timeout 50
protocol TCP
real_server 192.168.1.204 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.206 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}



启动keepalived


/etc/init.d/keepalived start



在slave主机设置:


vim /etc/keepalived/keepalived.conf




global_defs
{
router_id slave_211
}
 
vrrp_instance shengzc {
state MASTER
interface eth0
virtual_router_id 100    #这个数值 master和slave必须统一
priority 150     #这个数值决定哪台服务器是master 这里我们比master数值低,所以角色是backup,
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.1.207
}
}
virtual_server 192.168.1.207 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
#            persistence_timeout 50
protocol TCP
real_server 192.168.1.204 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.206 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}



启动keepalived


/etc/init.d/keepalived start



可以运行 ipvsadm -ln 来查看是否启用


ipvsadm



好了,现在我们直接访问 http://192.168.1.207 就实现了,高可用性,高负载的集群
参考文章:
http://www.5ilinux.com/2014/05/lvs_keepalived_nginx_tomcat.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-319741-1-1.html 上篇帖子: windows下nginx+tomcat+memcached集群配置 下篇帖子: nginx大量TIME_WAIT的解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表