注意了,这里LVS配置并不是指真的安装LVS然后用ipvsadm来配置他,而是用keepalived的配置文件来代替置LVS,这样会方便很多,一个配置文件搞定这些,维护方便,配置方便是也!
这里LVS配置也有两个配置 一个是虚拟主机组配置 一个是虚拟主机配置
1,虚拟主机组配置文件详解 这个配置是可选的,根据需求来配置吧,这里配置主要是为了让一台realserver上的某个服务可以属于多个Vir并且只做一次健康检查
virtual_server_group
2,虚拟主机配置
virtual server可以以下面三种的任意一种来配置
1. 1. virtual server IP port 2. 2. virtual server fwmark int 3. 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 #会话保持时间(秒为单位),即以用户在120秒同一个后端realserver
persistence_granularity
protocol TCP #健康检查用的是TCP还是UDP
ha_suspend #suspendhealthchecker’s activity virtualhost
sorry_server
也就是临时把所有的请求都发送到这里啦
real_server
weight 1 #给每台的权重,0表示失效(不知给他道他恢复正常),默认是1
inhibit_on_failure #表示在节点失败后,把他权重设置成0IPVS中删除
notify_up
HTTP_GET #健康检查方式 {
url { #要坚持的URL,可以有多个 path / #具体路径 digest
status_code 200 #返回状态码 }
connect_port 80 #监控检查的端口
bindto
#下面是常用的健康检查方式,健康检查方式一共有HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK这些#TCP方式 TCP_CHECK { connect_port 80 bindto 192.168.1.1 connect_timeout 4 } # TCP_CHECK
# SMTP方式,这个可以用来给邮件服务器做集群 SMTP_CHECK host {
connect_ip
connect_port
bindto
}
connect_timeout
delay_before_retry
helo_name
#MISC方式,这个可以用来检查很多服务器只需要自己会些脚本即可 MISC_CHECK {
misc_path
misc_timeout
misc_dynamic #这个就很好用了,可以非常精确的来调整权每天服务器的压力都能均衡调配,这个主要是通过执行的程序或脚本返回的状态代码来动态调整weight值,使权的后端压力来适当调整,不过这需要有过硬的脚本功夫才行哦 #返回0:健康检查没问题,不修改权重 #返回1:健康检查失败,权重设置为0
#返回2-255:健康检查没问题,但是权重却要根据返回代码修改为返回码-2,例如如果程序或脚本执行后返回的#那么权重这回被修改为 200-2 }
} # Realserver } # Virtual Server
配置文件到此就讲完了,下面是一份未加备注的完整配置文件
1. global_defs 2. {
3. notification_email 4. {
5. admin@example.com 6. }
7. notification_email_from admin@example.com 8. smtp_server 127.0.0.1 9. stmp_connect_timeout 30 10. router_id node1 11. }
12. notification_email
13. {
14. admin@example.com 15. admin@ywlm.net 16. } 17.
18. static_ipaddress 19. {
20. 192.168.1.1/24 brd + dev eth0 scope global 21. 192.168.1.2/24 brd + dev eth1 scope global 22. }
23. static_routes 24. {
25. src $SRC_IP to $DST_IP dev $SRC_DEVICE
26. src $SRC_IP to $DST_IP via $GW dev $SRC_DEVICE 27. } 28.
29. vrrp_sync_group VG_1 { 30. group { 31. http 32. mysql 33. }
34. notify_master /path/to/to_master.sh 35. notify_backup /path_to/to_backup.sh 36. notify_fault \37. notify /path/to/notify.sh 38. smtp_alert 39. } 40. group { 41. http 42. mysql 43. } 44.
45.
46. vrrp_script check_running {
47. script \48. interval 10 49. weight 10 50. } 51. 52.
53. vrrp_instance http { 54. state MASTER 55. interface eth0 56. dont_track_primary 57. track_interface { 58. eth0 59. eth1 60. }
61. mcast_src_ip
70. virtual_ipaddress {
71. #
73. 192.168.200.18/24 dev eth2 label eth2:1 74. }
75. virtual_routes {
76. # src