Nginx之Keepalived实现高可用(双机热备+自动切换)-yellowcong
2017-12-10 17:19
1286 查看
Nginx于Keepalived可以实现高可用,实现双机热备+自动切换,这种操作在现在的集群系统中,比较的常见,还有,通过keepalived和redis实现热备份的,还有和mysql实现的,类似的案例挺多。
2、Nginx之解压编译安装-yellowcong
3、CentOS之Tomcat的安装-yellowcong
下面是脚本内容,用来进行nginx是否存活的监测
使用
192.168.100.101访问正常
killall的命令若不存在就会报错,需要安装下面的工具
系统架构
keepalived虚拟化出192.168.100.100和
192.168.100.101的虚拟化ip,这个系统是两台计算机上,有4个tomcat,2个Nginx,2个Keepalived实现负载均衡策略。
节点信息
节点 | 服务 | 安装目录 |
---|---|---|
192.168.100.10:80 | nginx1 | /usr/local/nginx |
192.168.100.11:80 | nginx2 | /usr/local/nginx |
192.168.100.100 | keepalived1 | /usr/local/keepalived |
192.168.100.101 | keepalived2 | /usr/local/keepalived |
192.168.100.10:8080 | tomcat1 | /usr/local/nginx/tomcat/tomcat1 |
192.168.100.10:8081 | tomcat2 | /usr/local/nginx/tomcat/tomcat2 |
192.168.100.11:8080 | tomcat3 | /usr/local/nginx/tomcat/tomcat1 |
192.168.100.11:8081 | tomcat4 | /usr/local/nginx/tomcat/tomcat2 |
Tomcat端口分配
节点 | SHUTDOWN(端口) | HTTP/1.1(端口) | AJP/1.3(端口) |
---|---|---|---|
192.168.66.100:8080 | 8005 | 8081 | 8009 |
192.168.100.11:8081 | 8006 | 8082 | 8010 |
192.168.100.11:8080 | 8005 | 8081 | 8009 |
192.168.100.11:8081 | 8006 | 8082 | 8010 |
安装前准备
1、Centos之Keepalived安装-yellowcong2、Nginx之解压编译安装-yellowcong
3、CentOS之Tomcat的安装-yellowcong
配置keepalived
Keepalived会根据virtual_router_id和
authentication两个来确定集群关系。
#修改配置 vim /etc/keepalived/keepalived.conf #配置文件 ! Configuration File for keepalived global_defs { #从服务器最改一下这个 router_id node1 #表示运行keepalived服务器的一个标识。发邮件时显示在邮件主题的信息 } #监控服务.NGINX mysql等 vrrp_script chk_nginx { script "/usr/local/keepalived/check_nginx.sh" #每2s检查一次 interval 2 #每次检查-20 weight -20 } vrrp_instance VI_1 { ##主从设置 MASTER/BACKUP state MASTER #网卡名称 interface eth0 #同一个集群下这个 router_id是一样的 virtual_router_id 51 #本机的ip,需要修改 mcast_src_ip 192.168.100.10 #优先级,从节点 配置,需要小于主节点 priority 100 #设定MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒 advert_int 1 #认证的密码 authentication { auth_type PASS #设定授权密码,密码相同的为一个集群 auth_pass yellowcong } #触发的脚本 track_script { chk_nginx #检测脚本,上面配置的 } #虚拟ip地址 virtual_ipaddress { 192.168.100.100 192.168.100.101 } }
检查脚本
下面是脚本内容,用来进行nginx是否存活的监测
#创建并赋予权限 touch check_nginx.sh && chmod a+x check_nginx.sh #编辑文件 vim check_nginx.sh #################下面是内容#################### #!/bin/bash COUNT=$(ps -C nginx --no-header |wc -l) echo $COUNT #判断Nginx 是否都挂掉了 if [ $COUNT -eq 0 ] then #如果挂掉了,就启动nginx /usr/local/nginx/sbin/nginx echo "重启nginx" #等5秒钟后,再次查看是否 启动成功 sleep 5 #如果nginx没有启动起来,就直接干掉keepalived COUNT=$(ps -C nginx --no-header |wc -l) if [ $COUNT -eq 0 ] then echo "干掉keepalived" #如果killall命令不能使用,就需要安装psmisc工具了 #yum install -y psmisc killall keepalived fi fi
Nginx 配置
vim /usr/local/nginx/conf/nginx.conf #配置完成一个后,直接将另一个拷贝就可以了 #第一个参数 文件地址 #第二个参数 目标地址 scp 192.168.100.10:/usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/ #################配置的内容############### #user nobody; #配置的线程数目和cpu处理器的核心数目一致 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; #负载均衡 upstream myapp{ server 192.168.100.11:8080 weight=1 max_fails=2 fail_timeout=30s; server 192.168.100.11:8081 weight=1 max_fails=2 fail_timeout=30s; server 192.168.100.10:8081 weight=1 max_fails=2 fail_timeout=30s; server 192.168.100.10:8081 weight=1 max_fails=2 fail_timeout=30s; } server { listen 80; server_name localhost; #地址匹配 location / { #root html; #index index.html index.htm; proxy_set_header X-real-ip $remote_addr; proxy_pass http://myapp; } #错误页面 error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
启动成功后
直接用ifconfig 是看不到虚拟出来的ip的,这点需要注意,要使用ip a命令
#查看虚拟出来的ip #只有主节点有虚拟出来的ip,子节点没有 ip a
使用
ip a命令查看到vip的ip
ip访问
192.168.100.100访问正常,一顿刷新,4个tomcat的数据都可以访问到192.168.100.101访问正常
错误合集
-bash: killall: 未找到命令
没有发现killall命令,尴尬了吧killall的命令若不存在就会报错,需要安装下面的工具
yum install -y psmisc
参考文章
http://www.linuxde.net/2013/04/13381.html相关文章推荐
- nginx+keepalived实现双机热备高可用
- Nginx+keepalived主从双机热备自动切换架构
- Redis主从配置及通过Keepalived实现Redis自动切换高可用
- keepalived+nginx实现双机热备的高可用
- Redis主从配置及通过Keepalived实现Redis自动切换高可用
- Keepalived+Nginx主备切换实现高可用
- keepAlived应用于HaProxy的主备自动切换实现高可用,避免单点故障
- 结合keepalived实现redis群集高可用故障自动切换
- Nginx+keepalived主从双机热备自动切换解决方案
- keepAlived应用于HaProxy的主备自动切换实现高可用,避免单点故障
- keepalived+nginx实现高可用双机热备+负载均衡架构
- nginx+keepalived实现双机热备的高可用
- Keepalived+Nginx提供前端负载均衡+主从双机热备+自动切换
- Nginx+keepalived 脚本安装主从双机热备自动切换解决方案
- Nginx+keepalived 脚本安装主从双机热备自动切换解决方案
- Nginx+keepalived 脚本安装主从双机热备自动切换解决方案
- Nginx+Keepalived主从双机热备+自动切换
- nginx+keepalievd,实现负载均衡和故障点切换。keepalived双机热备。
- 结合keepalived实现redis群集高可用故障自动切换 推荐
- centos 7 LVS+keepalived实现nginx的高可用以及负载均衡