日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Keepalived+nginx造成流量异常

發布時間:2025/6/16 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Keepalived+nginx造成流量异常 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、使用虛擬機搭建環境

也是A、B 2臺機器,使用一樣的配置和軟件。

環境:CentOS6.5 2臺虛擬機

keepalived版本1.2.19

tengine版本2.1.2

節點A :

[root@A keepalived]# cat keepalived.conf

! Configuration File for keepalived

global_defs {?
?? notification_email {?
???? admin@localhost.com???????????? #設置報警郵件地址,可以設置多個,每行一個。 需開啟本機的sendmail服務?
?? }?
?? notification_email_from? admin@lvtao.net??????? #設置郵件的發送地址?
?? smtp_server 127.0.0.1??????????????????????????????? #設置smtp server地址?
?? smtp_connect_timeout 30????????????????????????????? #設置連接smtp server的超時時間?
?? router_id LVS_DEVEL????????????????????????????????? #表示運行keepalived服務器的一個標識。發郵件時顯示在郵件主題的信息?
}

vrrp_script check_nginx {?
??? script "/etc/keepalived/check_http_port"?
??? interval 2????????????????? #檢查間隔?
??? weight 5??????????????????? #權重?
}

vrrp_instance VI_1 {?
??? state BACKUP????????????? #指定keepalived的角色,MASTER表示此主機是主服務器,BACKUP表示此主機是備用服務器?
??? interface eth0??????????? #指定HA監測網絡的接口?
??? virtual_router_id 51????? #虛擬路由標識,這個標識是一個數字,同一個vrrp實例使用唯一的標識。即同一vrrp_instance下,MASTER和BACKUP必須是一致的?
??? priority 100?????????????? #定義優先級,數字越大,優先級越高,在同一個vrrp_instance下,MASTER的優先級必須大于BACKUP的優先級?
??? advert_int 1????????????? #設定MASTER與BACKUP負載均衡器之間同步檢查的時間間隔,單位是秒?
??? nopreempt???????????????? #設置 nopreempt 防止搶占資源,只生效BACKUP節點?
??? authentication {????????? #設置驗證類型和密碼?
??????? auth_type PASS??????? #設置驗證類型,主要有PASS和AH兩種?
??????? auth_pass 1111??????? #設置驗證密碼,在同一個vrrp_instance下,MASTER與BACKUP必須使用相同的密碼才能正常通信?
??? }?
??? virtual_ipaddress {?????? #設置虛擬IP地址,可以設置多個虛擬IP地址,每行一個?
??????? 10.0.0.15?
??? }?
??? track_script {?
??????? check_nginx?
??? }?
}

virtual_server 10.0.0.15 80 {?
??? delay_loop 6?
??? lb_algo wrr?
??? lb_kind DR?
??? persistence_timeout 50?
??? protocol TCP

??? real_server 10.0.0.13 80 {?
??????? weight 1?
??????? TCP_CHECK {?
??????????? connect_port 80?
??????????? connect_timeout 3?
??????????? delay_before_retry 3?
??????? }?
??? }

??? real_server 10.0.0.14 80 {?
??????? weight 1?
??????? TCP_CHECK {?
??????????? connect_port 80?
??????????? connect_timeout 3?
??????????? delay_before_retry 3?
??????? }?
??? }?
}

?

節點B:

[root@B keepalived]# cat keepalived.conf

! Configuration File for keepalived

global_defs {?
?? notification_email {?
???? admin@localhost.com???????????? #設置報警郵件地址,可以設置多個,每行一個。 需開啟本機的sendmail服務?
?? }?
?? notification_email_from? admin@lvtao.net??????? #設置郵件的發送地址?
?? smtp_server 127.0.0.1??????????????????????????????? #設置smtp server地址?
?? smtp_connect_timeout 30????????????????????????????? #設置連接smtp server的超時時間?
?? router_id LVS_DEVEL????????????????????????????????? #表示運行keepalived服務器的一個標識。發郵件時顯示在郵件主題的信息?
}

vrrp_script check_nginx {?
??? script "/etc/keepalived/check_http_port"?
??? interval 2????????????????? #檢查間隔?
??? weight 5??????????????????? #權重?
}

vrrp_instance VI_1 {?
??? state BACKUP????????????? #指定keepalived的角色,MASTER表示此主機是主服務器,BACKUP表示此主機是備用服務器?
??? interface eth0??????????? #指定HA監測網絡的接口?
??? virtual_router_id 51????? #虛擬路由標識,這個標識是一個數字,同一個vrrp實例使用唯一的標識。即同一vrrp_instance下,MASTER和BACKUP必須是一致的?
??? priority 99?????????????? #定義優先級,數字越大,優先級越高,在同一個vrrp_instance下,MASTER的優先級必須大于BACKUP的優先級?
??? advert_int 1????????????? #設定MASTER與BACKUP負載均衡器之間同步檢查的時間間隔,單位是秒?
??? nopreempt???????????????? #設置 nopreempt 防止搶占資源,只生效BACKUP節點?
??? authentication {????????? #設置驗證類型和密碼?
??????? auth_type PASS??????? #設置驗證類型,主要有PASS和AH兩種?
??????? auth_pass 1111??????? #設置驗證密碼,在同一個vrrp_instance下,MASTER與BACKUP必須使用相同的密碼才能正常通信?
??? }?
??? virtual_ipaddress {?????? #設置虛擬IP地址,可以設置多個虛擬IP地址,每行一個?
??????? 10.0.0.15?
??? }?
??? track_script {?
??????? check_nginx?
??? }?
}

virtual_server 10.0.0.15 80 {?
??? delay_loop 6?
??? lb_algo wrr?
??? lb_kind DR?
??? persistence_timeout 50?
??? protocol TCP

??? real_server 10.0.0.13 80 {?
??????? weight 1?
??????? TCP_CHECK {?
??????????? connect_port 80?
??????????? connect_timeout 3?
??????????? delay_before_retry 3?
??????? }?
??? }

??? real_server 10.0.0.14 80 {?
??????? weight 1?
??????? TCP_CHECK {?
??????????? connect_port 80?
??????????? connect_timeout 3?
??????????? delay_before_retry 3?
??????? }?
??? }?
}

?

[root@A keepalived]# cat relserver.sh?
#!/bin/bash?
#description: Config realserver

VIP=10.0.0.15

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

case "$1" in

start)

?????? /sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

?????? /sbin/route add -host $VIP dev lo:0

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

?????? sysctl -p >/dev/null 2>&1

?????? echo "RealServer Start OK"

?????? ;;

stop)

?????? /sbin/ifconfig lo:0 down

?????? /sbin/route del $VIP >/dev/null 2>&1

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

?????? echo "RealServer Stoped"

?????? ;;

*)

?????? echo "Usage: $0 {start|stop}"

?????? exit 1

esac

exit 0

[root@A keepalived]#

?

[root@A keepalived]# cat check_http_port?
#!/bin/bash?
#思路:1、使用curl檢查本地nginx可用性?
#????? 2、檢查失敗嘗試啟動nginx?
#????? 3、仍失敗,則關閉本地keepalived

NGINX=/usr/local/nginx/sbin/nginx?
PORT="80"

#curl -v -I -m 10 -o /dev/null -s -w %{http_code}"\n"?http://127.0.0.1/?
curl?http://127.0.0.1:$PORT?
if [ $? -ne 0 ]; then?
??????? #重啟nginx?
??????? /etc/init.d/nginx restart?
#?????? $NGINX -s stop?
#?????? $NGINX?
??????? sleep 3?
??????? curl?http://127.0.0.1/?
??????? [ $? -ne 0 ] && /etc/init.d/keepalived stop?
fi

exit 0?
[root@A keepalived]#

?

2、3個客戶端,依次訪問。就能重現流量異常。

[root@tsm-test-centos6 ~]# curl 10.0.0.15?
<!DOCTYPE html>?
<html>?
<head>?
<title>Welcome to tengine!</title>?
<style>?
??? body {?
??????? 35em;?
??????? margin: 0 auto;?
??????? font-family: Tahoma, Verdana, Arial, sans-serif;?
??? }?
</style>?
</head>?
<body>?
Welcome to tengine! B?

If you see this page, the tengine web server is successfully installed and?
working. Further configuration is required.

For online documentation and support please refer to?
<a href="http://tengine.taobao.org/">tengine.taobao.org.

<em>Thank you for using tengine.</em>


</body>?
</html>?
[root@tsm-test-centos6 ~]#

?

?

[root@tsm-app-dev1 ~]# curl 10.0.0.15?
<!DOCTYPE html>?
<html>?
<head>?
<title>Welcome to tengine!</title>?
<style>?
??? body {?
??????? 35em;?
??????? margin: 0 auto;?
??????? font-family: Tahoma, Verdana, Arial, sans-serif;?
??? }?
</style>?
</head>?
<body>?
Welcome to tengine! A?

If you see this page, the tengine web server is successfully installed and?
working. Further configuration is required.

For online documentation and support please refer to?
<a href="http://tengine.taobao.org/">tengine.taobao.org.

<em>Thank you for using tengine.</em>


</body>?
</html>?
[root@tsm-app-dev1 ~]#

?

10.0.0.8(我的筆記本)

?

?

原因不得而知,在此記錄。便日后尋得原因。



本文轉自 ygqygq2 51CTO博客,原文鏈接:http://blog.51cto.com/ygqygq2/1785087,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的Keepalived+nginx造成流量异常的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。