Chinaunix首页 | 论坛 | 博客
  • 博客访问: 33204
  • 博文数量: 14
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 151
  • 用 户 组: 普通用户
  • 注册时间: 2017-04-07 23:15
个人简介

一步一个脚印,扎扎实实投资自己。

文章分类

全部博文(14)

文章存档

2017年(14)

我的朋友

分类: 系统运维

2017-10-17 15:33:32

环境准备:
ubuntu 16.04.1 LTS
    server1:192.168.56.101
    server2:192.168.56.102
预留虚拟IP:192.168.56.200
keepalived-1.3.5.tar.gz
nginx-1.10.2.tar.gz


结构图(此次实现虚线框部分):



nginx安装: 
安装方法参考:《NGINX简明安装配置升级》这里就偷个懒不再复述了。
http://blog.chinaunix.net/uid-7910284-id-5773938.html

为了后面测试,将nginx默认主页加上标签
server1:
  1. sed -i 's/<\/body>/

    THIS IS SERVER1<\/h2> <\/body>/g' \

  2. /opt/nginx/html/index.html
server2: 
  1. sed -i 's/<\/body>/

    THIS IS SERVER2<\/h2> <\/body>/g' \

  2. /opt/nginx/html/index.html


keepalived安装配置:
安装IPV6环境支持 
  1. sudo apt-get install libipset-dev libnfnetlink-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev
安装openssl库支持
  1. sudo apt-get install libssl-dev
编译安装
  1. tar -zxf /tmp/keepalived-1.2.19.tar.gz -C /tmp/
  2. cd /tmp/keepalived-1.2.19
  3. ./configure --prefix=/opt/keepalived
  4. make
  5. sudo make install
复制配置文件
  1. cp /opt/keepalived/etc/keepalived/keepalived.conf /opt/keepalived/keepalived.conf
修改内容如下

  1. ! Configuration File for keepalived #配置文件中“!”是注释
  2. global_defs {
  3.     notification_email {
  4.         bigbirdxixi@gmail.com #告警邮箱
  5.     }
  6.     notification_email_from bigbirdxixi@gmail.com #告警发出邮箱
  7.     smtp_server smtp.gmail.com #smtp服务器(似乎没有用)
  8.     smtp_connect_timeout 30
  9.     router_id bigbird-ha #路由通讯编号,所有服务器必须一致
  10. }
  11. vrrp_instance XIXI_NGINX {    #实例名
  12.     state BACKUP    #模式MASTER|SLAVE|BACKUP
  13.     interface eth1    #绑定网卡
  14.     virtual_router_id 51
  15.     priority 100    #优先级,每台机器设置不同,越大优先级越高:server2设置成200
  16.     advert_int 1    #心跳检测时间
  17.     authentication {    #通讯校验方式,所有服务器必须一致,这里用密码进行校验
  18.     auth_type PASS
  19.     auth_pass bigbirdxixi
  20. }
  21. virtual_ipaddress {    #虚拟漂移IP地址
  22.     192.168.56.200
  23. }
  24. # notify_master /script/change_to_master.sh #状态变为master时执行的脚本
  25. # notify_backup /script/change_to_backup.sh #状态变为backup时执行的脚本
  26. }
  27. virtual_server 192.168.56.200 80 {    #虚拟服务器设置
  28.     delay_loop 6
  29.     lb_algo rr    #负载模式rr:轮询
  30.     lb_kind DR    #路由模式DR:直连
  31.     persistence_timeout 50
  32.     protocol TCP    #心跳检测协议
  33.     real_server 192.168.56.101 80 {    #物理服务器设置
  34.         weight 1    #负载权重
  35.         notify_down /opt/keepalived/kpstart    #监控失败调用程序,第二机器台机器设置在102下
  36.         TCP_CHECK {
  37.             connect_timeout 3
  38.             nb_get_retry 3
  39.             delay_before_retry 3
  40.         }
  41.     }
  42.     real_server 192.168.56.102 80 {
  43.         weight 1
  44.         TCP_CHECK {
  45.             connect_timeout 3
  46.             nb_get_retry 3
  47.             delay_before_retry 3
  48.         }
  49.     }
  50. }
启动keepalived
  1. sudo /opt/keepalived/sbin/keepalived -f /opt/keepalived/keepalived.conf
正常情用ip addr可以看到192.168.56.101的ip已经绑定到网卡上了


测试一下效果:
场景1:正常情况下访问虚拟IP 
server1:启动nginx与keepalive
  1. nginx -c nginx.conf
  2. /opt/keepalived/kpstart
查看/var/log/syslog,可以看到server1变成了MASTER,如下图
ip addr看到网卡server1的eth1上绑定了虚拟IP

server2:启动nginx与keepalive
  1. nginx -c nginx.conf
  2. /opt/keepalived/kpstart
浏览器输入

场景2:server1的nginx宕掉情况下,访问虚拟IP
server1:停掉nginx
  1. nginx -s stop
server2 :查看/var/logs/syslogs,可以看到虚拟IP2已从server1迁移,server2变成master
ip addr看到网卡server2的eth1上绑定了虚拟IP

浏览器输入
到这里keepalived的nginx高可用搭建完成。

扩展:
参考《rsync+inotifywait实现文件实时同步》以方便nginx配置管理
http://blog.chinaunix.net/uid-7910284-id-5774333.html
阅读(523) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~