keepalived 个人解析

1.DNS(Domain Name System,域名系统)

2.负载均衡的种类

   1.apache +JK(解决请求转发的插件)
   2.Nginx(Nginx自带请求转发的功能)
   3.LVS(Linux Virtural Server)+keepalived
 在1和2中apache和Nginx起到的作用就是负载均衡器,为了实现

3.Keepalived 配置详解
安装
yum -y install keepalived //安装keepalived

 作用:仅仅是实现高可用的功能,防止单点故障
     它是以VRRP(virtual Router Redundancy Protecel,虚拟路由冗余协议)

  /etc/keepalived /keepalived .conf
   1.GloBal configuration全局配置
      gloabal definitions  全局定义
      static routes 静态路由
   2.VRRP configuration (Virtual Router Redundancy Protocol ,虚拟路由冗余协议)
       Vrrp synchronization group 同步组
       Vrrp instances 路由实例
   3. LVS configuration

Keepalived 几个问题总结

1.如何在状态转换时进行通知
    notify_master
    notify_backup
    nofity_fault;
2.如何配置ipvs
     virtual server
     real server
             healthCheck(健康检查)



  虚拟服务器
virtual_server 192.168.200.100 443 {
        delay_loop 6 延迟几个周期 才做服务重启
        lb_algo rr 调度算法
        lb_kind NAT  调度方法
        nat_mask 255.255.255.0 掩码
        persistence_timeout 50 持久事件
        protocol TCP  协议

        real_server 192.168.201.100 443 {
            weight 1 权重

          SSL_GET { 常见检查的有HTTP_GET|SSL_GET|TCP
                url {
                  path /
                  digest   ff20ad2481f97b1754ef3e12ecd3a9cc 加密算法
                }
                url {
                  path /mrtg/
                  digest 9b3a0c85a887a256d6939da88aabd8cd
                }
                connect_timeout 3 链接超时事件
                nb_get_retry 3 重试次数
                delay_before_retry 3  在每次重试之前延迟多长事件
            }
        }
    }
3.如何对某特定服务实现高可用

          配置keepalived.conf                                                                                                                                                                                                                                                                                                                            
        ! Configuration File for keepalived

        global_defs {
           notification_email {
             acassen@firewall.loc
             failover@firewall.loc
             sysadmin@firewall.loc
           }
           notification_email_from Alexandre.Cassen@firewall.loc
           smtp_server 192.168.9.136
           smtp_connect_timeout 30
           router_id LVS_DEVEL
        }

         //该脚本主要是检查故障转移
        vrrp_script chk_mantaince_down {
           script "[[ -e /etc/keepalived/down ]] && exit 1 || exit 0"  //如果有这个文件表示需要故障转移
           interval 1  
           weight - 2  
        }

         //检查nginx服务是否正在运行
        vrrp_script chk_nginx {
         script "killall -0 nginx"
         interval 1  检查间隔时间是1s
          weight -2  
          fall 2   如果连续两次检查Nginx服务都是失败的话,就会故障转移
          rise 1   //只要有一次就成功就行可以表示服务正常
        }


        vrrp_instance VI_1 {
            state MASTER  
            interface eth2    //设置接口,这里一定需要和主机的相同
            virtual_router_id 51
            priority 100
            advert_int 1
            authentication {
                auth_type PASS
                auth_pass 1111
            }
            virtual_ipaddress {
                192.168.9.100
            }
            //追踪脚本
            track_script {
                chk_mantaince_down  //检查是否宕机脚本
                chk_nginx     //检查Nginx 是否正常运行脚本
            }


            //通知总共有三个,分别如下,如果没有参数的话,就可以把引号去掉,如果有参数的话必须带上引号
            notify_master "/etc/keepalived/notify.sh master"
            notify_backup "/etc/keepalived/notify.sh backup"
            notify_fault "/etc/keepalived/notify.sh fault"
        }
         //设置虚拟路由IP
        virtual_server 192.168.9.100 80 {
            delay_loop 6
            lb_algo rr
            lb_kind NAT
            nat_mask 255.255.255.0
            persistence_timeout 50
            protocol TCP
           //真是服务器IP 
            real_server 192.168.9.129 80 {
                weight 1
                HTTP_GET {
                    url {
                      path /
                      state_code=200
                    }
                    connect_timeout 3
                    nb_get_retry 3
                    delay_before_retry 3
                }
            }

            real_server 192.168.9.134 80{
                weight 1
                HTTP_GET {  //这里使用的是HTTP_GET进行检查
                    url {
                      path /
                      state_code=200
                    }
                    connect_timeout 3
                    nb_get_retry 3
                    delay_before_retry 3
                }
            }

通过ipvsadm 来进行查看虚拟路由的IP 以及真实IP ipvsadm -L -n

 下面表示的情形是  192.168.9.129:80 和192.168.9.134:80 绑定在虚拟IP 192.168.9.100 上面
[root@zdc init.d]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port   Forward Weight ActiveConn InActConn
TCP  192.168.9.100:80 rr persistent 50   //表示虚拟IP
  -> 192.168.9.129:80 Masq1  0  0   //真实IP
  -> 192.168.9.134:80 Masq1  0  0   //真实IP

LVS+Keepalived详解

1.在 /etc/init.d 文件目录下创建 realserver 文件,并把下面的内容复制进去,并且添加全权限 chmod 775 realserver`

    #!/bin/bash
    #chkconfig: 2345 79 20
    #description:realserver
    SNS_VIP=192.168.1.98 //设置虚IP,这个可以根据自己的喜好进行设置
    . /etc/rc.d/init.d/functions
    case "$1" in
    start)
    ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
    /sbin/route add -host $SNS_VIP dev lo:0
    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
    sysctl -p >/dev/null 2>&1
    echo "RealServer Start OK"
    ;;
    stop)
    ifconfig lo:0 down
    route del $SNS_VIP >/dev/null 2>&1
    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
    echo "RealServer Stoped"
    ;;
    *)
    echo "Usage: $0 {start|stop}"
    exit 1
    esac
    exit 0

2.启动刚才编写的文件realserver

    ./realserver start   //注意这里是规定

3.查看端口号 ifconfig ,如果增加了一个接口 lo:0表明成功添加了一个回环接口,格式如下

      lo:0      Link encap:Local Loopback  
      inet addr:192.168.9.200  Mask:255.255.255.255
      UP LOOPBACK RUNNING  MTU:16436  Metric:1

4.开启httpdfuw

完成这三步表示已经成功了

4:并发量的总结

  1. tomcat 的最大并发量实在1000 默认是150,一般情况下tomcat超过250 性能就会降低 默认的端口号是8080
  2. nginx支持的并发量是在5000;默认的端口号是80

5. 默认端口号总结

   查看端口号  ss -tanl
   查看IP地址 ip addr show
   1.Mysql 端口号-3306
   2.Ftp端口号:21
   3.Nginx 端口号:80
   4.Redis 端口号:6379
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值