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

[经验分享] Keepalived 实现LVS-DR和nginx的 同时 高可用集群

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-9 09:21:50 | 显示全部楼层 |阅读模式
Keepalived 实现LVS-DR和nginx的同时高可用集群 QQ截图20151109092134.png
第一步:安装LVS和Nginx,keepalived
                   Yum–y install ipvsadm keepalived
                   编译安装nginx
                   ./configure–prefix=    ,make&&makeinstall

第二步:设置ipvsadm规则
                   Ipvsadm–A –t 10.10.1.62:3380 –s rr
                   Ipvsadm–a –t 10.10.1.62:3380 –r 10.10.1.60 –g –w1
                   Ipvsadm–a –t 10.10.1.62:3380 –r 10.10.1.61 –g –w1
                   Ipvsadm–a –t 10.10.1.62:3380 –r 10.10.1.63 –g –w1
                   Ipvsadm–A –t 10.10.1.88:80 –s rr
                   Ipvsadm–a –t 10.10.1.88:80 –r 10.10.1.80 –g –w1
                   Ipvsadm–a –t 10.10.1.88:80 –r 10.10.1.81 –g –w1
                   保存规则:ipvsadm –S< /jiaoben/ipvsadm.txt

第三步:配置nginx的配置文件。

#user  nobody;
worker_processes  4; #启动的进程数,建议cpu的核数

#error_log  logs/error.log;
#error_log logs/error.log  notice;
#error_log logs/error.log  info;

#pid        logs/nginx.pid;


events {
             use epoll;
             worker_connections  65535;  #进程的最大连接数
                          }


http {
              include       mime.types;
              default_type application/octet-stream;

          #log_format main  '$remote_addr - $remote_user[$time_local] "$request" '
          #'$status $body_bytes_sent"$http_referer" '
          # '"$httpuser_agent""$http_x_forwarded_for"';

         #access_log logs/access.log  main;

          server_tokens off;   #隐藏版本信息
          sendfile       on;
          #tcp_nopush    on;

          #keepalive_timeout  0;
          keepalive_timeout  65;

          #gzip on;
      upstream tomcat {
            ip_hash;
            server 10.10.1.60:8080 max_fails=2 fail_timeout=10s;
            server10.10.1.61:8080  max_fails=2fail_timeout=10s;
            server10.10.1.63:8080  max_fails=2fail_timeout=10s;



                                                        }

            server {
                listen       80;
                server_name  localhost;

                #charset koi8-r;

               #access_log logs/host.access.log  main;


               location / {
                    root /tms;  
                    index login.jsp
                    proxy_set_header X-Frworded-For$remote_addr;
                    proxy_set_header Host $host;
                    proxy_pass http://tomcat;

                        }
                                      }
第四步:keepalived的配置文件的修改

! Configuration File for keepalived

global_defs {
  notification_email {
    root@localhost


   }
  notification_email_from Alexandre.Cassen@firewall.loc
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id LVS_DEVEL
}

vrrp_instance VI_1 {
   state BACKUP         #从机
   interface eth0
   virtual_router_id 51
   priority 150         #定义优先级,数字大优先极高
   advert_int 1
    nopreempt            #不抢占
   authentication {
       auth_type PASS   #简单的连接样式
       auth_pass 1111   #简单的密码
    }
   virtual_ipaddress {
       10.10.1.62/32 dev eth0   
       10.10.1.88/32 dev eth1

    }
}

virtual_server 10.10.1.62 3380 {
   delay_loop 6
   lb_algo rr                 #LVS调度算法
   lb_kind DR                 #LVS集群模式
   nat_mask 255.255.255.255
#  persistence_timeout 50    #绘画保持时间/秒
   protocol TCP               #使用的协议

   real_server 10.10.1.60 3380 {
       weight 1               #默认为1,0为失效
       inhibit_on_failure     #健康检查失败,将weight设为0失效,而不在ipvs里删除
       TCP_CHECK {
           connect_port 3380      #连接端口
             bindto 10.10.1.60      #绑定Ip

          # url {               可以检测多个url
          #  path /mrtg/
          #  digest9b3a0c85a887a256d6939da88aabd8cd
          # }
           connect_timeout 3      #连接超时
           nb_get_retry 3         #重试次数
           delay_before_retry 3   #重连间隔时间
       }
    }
   real_server 10.10.1.61 3380 {
       weight 1
        inhibit_on_failure     #健康检查失败,将weight设为0失效,而不在ipvs里删除
       TCP_CHECK {
           connect_port 3380      #连接端口
             bindto 10.10.1.61      #绑定Ip
          # url {              可以检测多个url
          #  path /mrtg/
          #  digest9b3a0c85a887a256d6939da88aabd8cd
          # }
           connect_timeout 3      #连接超时
           nb_get_retry 3         #重试次数
           delay_before_retry 3   #延迟时间
       }
    }
   real_server 10.10.1.63 3380 {
       weight 1
        inhibit_on_failure     #健康检查失败,将weight设为0失效,而不在ipvs里删除
       TCP_CHECK {
           connect_port 3380      #连接端口
             bindto 10.10.1.63
          # url {              可以检测多个url
          #  path /mrtg/
          #  digest9b3a0c85a887a256d6939da88aabd8cd
          # }
           connect_timeout 3      #连接超时
           nb_get_retry 3         #重试次数
           delay_before_retry 3   #延迟时间
       }
    }




#=================nginx的HA========啊万恶的分割线啊!!==================================




virtual_server 10.10.1.88 80 {
   delay_loop 6

   nat_mask 255.255.255.255
#  persistence_timeout 50
   protocol TCP

   real_server 10.10.1.80 80 {
       weight 1
       inhibit_on_failure     #健康检查失败,将weight设为0失效,而不在ipvs里删除
       TCP_CHECK {                #tcp检测
              connect_port 80       #连接端口
          # url {              可以检测多个url
          #  path /mrtg/
          #  digest9b3a0c85a887a256d6939da88aabd8cd
          # }
           connect_timeout 3      #连接超时
            nb_get_retry 3         #重试次数
           delay_before_retry 3   #延迟时间
       }
    }
   real_server 10.10.1.81 80 {
       weight 1
       inhibit_on_failure     #健康检查失败,将weight设为0失效,而不在ipvs里删除
       TCP_CHECK {                #tcp检测
              connect_port 80       #连接端口
          # url {              可以检测多个url
          #  path /mrtg/
          #  digest9b3a0c85a887a256d6939da88aabd8cd
          # }
           connect_timeout 3      #连接超时
           nb_get_retry 3         #重试次数
            delay_before_retry 3   #延迟时间
       }
    }
}


注意:keepalived.conf的配置
    stateBACKUP  的状态均为从,
    priority100         #定义优先级,数字大优先极高,决定主从。      

唯一的不足时当nginx的宕掉是,keepalived是不会漂移的,需要增加检测脚本,当nginx挂掉时,强制keepalived stop。




运维网声明 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.yunweiku.com/thread-136831-1-1.html 上篇帖子: LVS集群配置(DR模式) 下篇帖子: LVS负载均衡集群技术学习笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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