keepalived 个人解析

来源:互联网 发布:如何用python做贪吃蛇 编辑:程序博客网 时间:2024/06/02 03:16

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 -nIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port   Forward Weight ActiveConn InActConnTCP  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
原创粉丝点击