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 # 默认为1,0为失效
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