Keepalived的LVS配置

LVS配置

包括两部分

虚拟主机组,virtual server group
虚拟主机,virtual server

这些配置,都会传递给ipvsadm作为参数

虚拟主机组

这个配置段是可选的,目的是为了让一台RealServer上的某个service
可以属于多个Virtual Server,并且,只做一次健康检查

virtual_server_group <STRING> {
    # VIP port
    <IPADDR> <PORT>
    <IPADDR> <PORT>
    ……
    fwmark <INT>
}

虚拟主机

Virtual_server可以选择
下面三种方式的任意一种配置

1、virtual_server IP port
2、virtual_server fwmark int
3、virtual_server group string

virtual_server 192.168.1.2 80 { 

    # 设置一个virtual server: VIP:Vport
    delay_loop 3                     # service polling的delay时间
    lb_algo rr|wrr|lc|wlc|lblc|sh|dh # LVS的调度算法
    lb_kind NAT|DR|TUN               # LVS集群模式
    persistence_timeout 120          # 会话保持时间秒
    persistence_granularity <NETMASK>   # LVS会话保持粒度,ipvsadm中的-M参数,默认是0xffffffff,即根据每个客户端都会话保持
    protocol TCP                        # 使用的协议是TCP还是UDP
    ha_suspend                          # suspendhealthchecker’s activity
    virtualhost <string>                # HTTP_GET做健康检查时,检查的Web服务器的虚拟主机,即Host:头
    sorry_server <IPADDR> <PORT>        # 备用机,所有的real server失效后启用

    # 每台RealServer都需要一个下面的配置项
    real_server <IPADDR> <PORT>
    {
        weight 1                          # 默认为10为失效
        inhibit_on_failure                # 在服务器健康检查失败时,将其weight设置为0,而不是直接从IPVS里面删除
        notify_up <STRING> | <QUOTED-STRING>     # 在检测到service up后执行的脚本
        notify_down <STRING> | <QUOTED-STRING>   # 在检测到service down后执行的脚本

        # 下面配置任意一种健康检测方式:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK
        HTTP_GET | SSL_GET
        {
            url {           # HTTP/SSL检查的URL,这里可以指定多个URL
            path /
            digest <STRING> # SSL检查后的摘要信息(genhash工具算出)
            status_code 200 # HTTP检查的返回状态码
        }
            connect_port 80 # 健康检查端口

            # 以此地址发送请求对服务器进行健康检查
            bindto <IPADD>
            connect_timeout        # 连接超时时间
            nb_get_retry 3         # 重连次数
            delay_before_retry 2   # 重连间隔时间,秒
        }                      # END OF HTTP_GET|SSL_GET

        # TCP方式的监控检查
        TCP_CHECK {
            connect_port 80
            bindto 192.168.1.1
            connect_timeout 4
        } # TCP_CHECK

        # SMTP 方式健康检查
        SMTP_CHECK
        # 这里的配置意义和HTTP里面的类似
        host {
            connect_ip <IP ADDRESS>
            connect_port <PORT>    # 默认检查25端口
            bindto <IP ADDRESS>
        }
            connect_timeout <INTEGER>
            retry <INTEGER>
            delay_before_retry <INTEGER>
            # "smtp HELO"请求命令的参数,可选的
            helo_name <STRING>|<QUOTED-STRING>
        } #SMTP_CHECK

        #MISC健康检查方式,执行一个程序
        MISC_CHECK
        {
            # 外部程序或脚本路径
            misc_path <STRING>|<QUOTED-STRING>
            # 脚本执行的超时时间
            misc_timeout <INT>
            # 如果设置了misc_dynamic的话,healthchecker程序的退出状态码,会用了动态调整服务器的权重(weight)
            # 返回0: 健康检查OK,权重不被修改
            # 返回1: 健康检查失败,权重设为0
            # 返回2-255: 健康检查OK,权重设置为:退出状态码-2,比如,返回255,那么weight=255-2=253
            misc_dynamic
        }
    } # Realserver
} # Virtual Server

猜你喜欢

转载自blog.csdn.net/nangeali/article/details/81604256