虛擬服務器配置實驗:
兩臺centos6主機為web service系統為CentOS6.8 n1:172.16.253.87 n2:172.16.252.5都安裝httpd yum install -y httpd[root@n1 ~]#vim /var/www/html/index.html<h1>Real Server 1</h1>[root@n1 ~]#service httpd start[root@n2 ~]#vim /var/www/html/index.html<h1>RealServer 2</h1>[root@n1 ~]#service httpd start#!/bin/bash##vip='172.16.0.99'netmask='255.255.255.255'iface='lo:0' case $1 instart) echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce ifconfig $iface $vip netmask $netmask broadcast $vip up route add -host $vip dev $iface ;;stop) ifconfig $iface down echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce ;;*) exit 1esac[root@n1 ~]#bash -x setrs.sh start[root@n1 ~]#route -n172.16.0.99 0.0.0.0 255.255.255.255 UH 0 0 0 lo[root@n1 ~]#scp setrs.sh 172.16.252.5:/root[root@n2 ~]#bash -x setrs.sh start[root@n2 ~]#route -n172.16.0.99 0.0.0.0 255.255.255.255 UH 0 0 0 lo [root@node1 ~]#yum -y install nginx[root@node1 ~]#systemctl start nginx.service[root@node2 ~]#yum -y install nginx[root@node2 ~]#systemctl start nginx.service[root@node1 ~]#yum install -y ipvsadm[root@node1 /etc/keepalived]#vim keepalived.confvirtual_server 172.16.0.99 80 { delay_ loop 1 服務輪詢的時間間隔 lb_algo wrr 定義調度方法 lb_kind DR 集群的類型 protocol TCP 服務協議,僅支持TCP sorry_server 127.0.0.1 80 備用服務器地址 real_server 172.16.252.5 80 { weight 1 HTTP_GET { url { 定義當前主機的健康狀態檢測方法 path /index.html 定義要監控的URL status_code 200 判斷上述檢測機制為健康狀態的響應碼 } nb_get_retry 3 重試次數 delay_before_retry 2 重試之前的延遲時長 connect_timeout 3 連接請求的超時時長 } } real_server 172.16.252.5 80 { weight 1 HTTP_GET { url { path /index.html status_code 200 } nb_get_retry 3 delay_before_retry 2 connect_timeout 3 } } } [root@node2 /etc/keepalived]#vim keepalived.conf 做同上操作測試:[root@node1 /etc/keepalived]#systemctl stop keepalived.service[root@node2 /etc/keepalived]#curl http://172.16.0.99<h1>Real Server 1</h1>[root@node2 /etc/keepalived]#curl http://172.16.0.99<h1>RealServer 2</h1>[root@node2 /etc/keepalived]#curl http://172.16.0.99<h1>Real Server 1</h1>[root@node2 /etc/keepalived]#curl http://172.16.0.99<h1>RealServer 2</h1>[root@node1 /etc/keepalived]#systemctl start keepalived.service[root@node1 /etc/keepalived]#ipvsadm -ln -> 172.16.252.5:80 Route 1 0 2 -> 172.16.253.87:80 Route 1 0 2 [root@node2 /etc/keepalived]#ipvsadm -ln -> 172.16.252.5:80 Route 1 0 0 -> 172.16.253.87:80 Route 1 0 0 [root@n1 ~]#service httpd stop[root@node1 /etc/keepalived]#ipvsadm -ln -> 172.16.252.5:80 Route 1 0 0 [root@n1 ~]#service httpd start [root@n2 ~]#service httpd stop[root@node2 /etc/keepalived]#ipvsadm -ln -> 172.16.253.87:80 Route 1 0 0
TCP_CHECK使用示例:
[root@node1 /etc/keepalived]#vim keepalived.confvirtual_server 172.16.0.99 80 { delay_ loop 1 lb_algo wrr lb_kind DR protocol TCP sorry_server 127.0.0.1 80 real_server 172.16.253.87 80 { weight 1 HTTP_GET { url { path /index.html status_code 200 } nb_get_retry 3 delay_before_retry 2 connect_timeout 3 } } real_server 172.16.252.5 80 { weight 1 TCP_CHECK { nb_get_retry 3 delay_before_retry 2 connect_timeout 3 } }}
原創文章,作者:Linux.rookie,如若轉載,請注明出處:http://www.www58058.com/78798