马哥linux LVS学习笔记(5)

2019-08-31 13:09

7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.

#

./etc/rc.d/init.d/functions

VIP=132.96.138.36

case\in start)

/sbin/ifconfig lo down /sbin/ifconfig lo up

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

/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up /sbin/route add -host $VIP dev lo:0 ;;

stop)

/sbin/ifconfig lo:0 down

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 ;;

status)

islothere=`/sbin/ifconfig lo:0 | grep $VIP` isrothere=`netstat -rn | grep \ if[!\-o !\];then

echo \ else

echo \ fi ;;

*)

echo \ exit 1 ;; esac

curl命令选项:

--cacert CA证书 (SSL)

--capath CA目录 (made using c_rehash) to verify peer against (SSL)

--compressed 要求返回是压缩的形势 (using deflate or gzip) --connect-timeout 设置最大请求时间 -H/--header 自定义头信息传递给服务器 -i/--include 输出时包括protocol头信息 -I/--head 只显示文档信息

--interface 使用指定网络接口/地址 -s/--silent静音模式。不输出任何东西

-u/--user 设置服务器的用户和密码 -p/--proxytunnel 使用HTTP代理

可以参考以下脚本

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.

RS健康状态检查脚本示例第二版: #!/bin/bash #

VIP=192.168.10.3 CPORT=80

FAIL_BACK=127.0.0.1

RS=(\) declare -a RSSTATUS RW=(\) RPORT=80 TYPE=g CHKLOOP=3

LOG=/var/log/ipvsmonitor.log

addrs(){

ipvsadm -a -t $VIP:$CPORT -r $1:$RPORT -$TYPE -w $2 [ $?-eq 0]&&return0||return1 }

delrs(){

ipvsadm -d -t $VIP:$CPORT -r $1:$RPORT [ $?-eq 0]&&return0||return1 }

checkrs(){ local I=1

while[ $I -le $CHKLOOP ];do

if curl --connect-timeout 1 http://$1 &>/dev/null;then return0 fi

let I++ done

33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.

$LOG

return1 }

initstatus(){ local I local COUNT=0; for I in ${RS[*]};do

if ipvsadm -L -n | grep \&&>/dev/null ;then RSSTATUS[$COUNT]=1 else

RSSTATUS[$COUNT]=0 fi

let COUNT++ done }

initstatus while:;do let COUNT=0 for I in ${RS[*]};do if checkrs $I;then

if[ ${RSSTATUS[$COUNT]}-eq 0];then addrs $I ${RW[$COUNT]}

[ $?-eq 0]&& RSSTATUS[$COUNT]=1&& echo \+'%F %H:%M:%S'`, $I is back.\>> fi else

if[ ${RSSTATUS[$COUNT]}-eq 1];then delrs $I

[ $?-eq 0]&& RSSTATUS[$COUNT]=0&& echo \+'%F %H:%M:%S'`, $I is gone.\>> fi fi

let COUNT++ done sleep 5 done

57.

58. 59. 60. 61.

$LOG

62. 63. 64. 65. 66. 67.

健康检查脚本,亲测ok

1. 2. 3. 4. 5.

[root@lvs ~]# cat healteh_check.sh #!/bin/bash #

VIP=132.96.138.36 CPORT=80

6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.

RPORT=80

declare -a RS=(\) declare -a RSS=(\) declare -a RSW=(\) TYPE=g

LOG=/var/log/ipvsmonitor.log

### Add a node into Cluster addrs(){

if ipvsadm -L -n | grep ${RS[$1]}&>/dev/null ;then

echo \>>$LOG else

ipvsadm -a -t $VIP:$CPORT -r ${RS[$1]}:$RPORT -$TYPE -w ${RSW[$1]} if[ $?-eq 0];then fi fi }

RSS[$1]=online

echo \>>$LOG echo \`date +'%F %H:%M:%S'` ,Add ${RS[$1]} into Cluster

else

failed!!!\>>$LOG

### Del a node from Cluster delrs(){

if ipvsadm -L -n | grep ${RS[$1]}&>/dev/null ;then ipvsadm -d -t $VIP:80-r ${RS[$1]} if[ $?-eq 0];then fi else fi }

echo \>>$LOG

RSS[$1]=offline

echo \>>$LOG echo \`date +'%F %H:%M:%S'` ,Del ${RS[$1]} from Cluster failed!\>>$LOG

else

### Init cluster status initstatus(){

for((i=0;i<${#RS[@]};i++));do

if ipvsadm -L -n | grep ${RS[$i]}&>/dev/null ;then

RSS[$i]=online

49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66.

}

else fi

RSS[$i]=offline

done

initstatus

while:;do

for((i=0;i<${#RS[@]};i++));do

if curl --connect-timeout 1 http://${RS[$i]}&>/dev/null;then fi done sleep 2 done

addrs $i delrs $i else

LVS的持久连接 LVS持久连接:

无论使用算法,LVS持久都能实现在一定时间内,将来自同一个客户端请求派发至此前选定的RS。

持久连接模板(内存缓冲区):

每一个客户端 及分配给它的RS的映射关系; ipvsadm -A|E ... -p timeout:

timeout: 持久连接时长,默认300秒;单位是秒; 在基于SSL,需要用到持久连接;

PPC:将来自于同一个客户端对同一个集群服务的请求,始终定向至此前选定的RS; 持久端口连接

PCC:将来自于同一个客户端对所有端口的请求,始终定向至此前选定的RS; 持久客户端连接

把所有端口统统定义为集群服务,一律向RS转发; PNMPP:持久防火墙标记连接 80: RS1 23: 同一个RS 防火墙标记: PREROUTING 80: 10


马哥linux LVS学习笔记(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:常见天气系统评课记录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: