プログラムの開発

Apacheは高可用性ロードバランシングを構築する

CentOS 7でのapacheのインストールと自動起動keepalivedインストールチュートリアルのインストール上記のチュートリアルを2台のマシンに別々にインストールします。

記事の目次

CentOS 7でのApacheインストールと自動起動

keepalivedインストールチュートリアル

ApacheとKeepalivedの両方のマシンにインストールします。

最初のマシンのKeepalivedを設定する

構成ファイルの内容は以下のとおりです。

/etc/keepalived/keepalived.confの編集

# vi /etc/keepalived/keepalived.conf、次のように追加

! Keepalivedの設定ファイル

global_defs {
notification_email {
admin@example.com
}
notification_email_from admin@example.com
smtp_server 127.0.0.1
sm__out 30
router_id linux 0 1
}

vrrp_instance VI_1 { #例を定義する
ステート·バックアップ #バックアップに設定し、優先度で優先順位をコントロールします。
インターフェースeth 0
virtual_router id 51
優先順位100
nopreempt #優先度が高いこのパラメータを設定すると、プライマリ復元後に便利です。
advert_int 1 自動的に引き継ぐことができる
authentication {
auth_type PASS
auth_pass 111 1
}
virtual_ipaddress {
10.0.0.199 dev eth0 label eth0 0 #ここではlabelラベルを使用してeth0 0を有効にする
}
}

virtual_server 10.0.0.199 80 { 以下はLVSの定義です
delay_loop 6
lb_algo rr
lb_kind DR
nat_255.255.255.0
protocol TCPの

real_server 10.0.0.191 80 { そのうちの1つはローカルWebサービス
重量1分。
TCP_{
connect_timeout 3
}
}
real_server 10.0.0.192 80 { #別のWebサービス
重量1分。
TCP_{
connect_timeout 3
}
}
}
2台目のマシンのkeepalivedファイルは以下の通りです。

/etc/keepalived/keepalived.confの編集

# vi /etc/keepalived/keepalived.conf、次のように追加

! Keepalivedの設定ファイル

global_defs {
notification_email {
admin@example.com
}
notification_email_from admin@example.com
smtp_server 127.0.0.1
sm__out 30
router_id linux 02
}

vrrp_instance VI_1 { #例を定義する
ステート·バックアップ #バックアップに設定し、優先度で優先順位をコントロールします。
インターフェースeth 0
virtual_router id 51
優先順位50
advert_int 1 自動的に引き継ぐことができる
authentication {
auth_type PASS
auth_pass 111 1
}
virtual_ipaddress {
10.0.0.199 dev eth0 label eth0 0 #ここではlabelラベルを使用してeth0 0を有効にする
}
}

virtual_server 10.0.0.199 80 { 以下はLVSの定義です
delay_loop 6
lb_algo rr
lb_kind DR
nat_255.255.255.0
protocol TCPの

real_server 10.0.0.191 80 { そのうちの1つはローカルWebサービス
重量1分。
TCP_{
connect_timeout 3
}
}
real_server 10.0.0.192 80 { #別のWebサービス
重量1分。
TCP_{
connect_timeout 3
}
}
}
keepalived設定ファイルの変更が終わったら、Apacheのデフォルトページvi/opt/apache/apache-2.4.29/htdocs/index.htmlの変更を開始します。

Native Start Loop Back Addressについて

よく知られているLVSはのdrモードは、realserverでループバックアドレスを起動しなければならないので、2台のマシンのロードバランシングを構築して、当然、このマシンでも対応するループバックアドレスを起動して、必要な機能を実現することができます。スクリプトは以下のとおりです。(以下の2つのスクリプトは蚊のオリジナル、蚊のウェブサイトアドレスhttp//www.wenzizone.cn)
# vi /usr/local/bin/lo

#!/ bin/shとは

VIP= 10.0.19 9

ケース“$1”in
stop
# close lo 0 interface

echo $"Close lo 0 interface"
/sbin/route del-host $VIP dev lo 0
/sbin/ifconfig lo 0down
echo “0”>/proc/sys/net/ipv 4/conf/all/arp_announce
echo “0”>/proc/sys/net/ipv 4/conf/all/arp_ignore
echo “0”>/proc/sys/net/ipv4/conf/lo/arp_announce
echo “0”>/proc/sys/net/ipv4/conf/lo/arp_ignore
;;
start
# start lo 0

echo $'Start lo 0 interface'
/sbin/ifconfig lo 0 $VIP/32 broadcast $VIP up
/sbin/route add-host $VIP dev lo 0
echo “2”>/proc/sys/net/ipv 4/conf/all/arp_announce
echo “1”>/proc/sys/net/ipv4/conf/all/arp_ignore
echo “2”>/proc/sys/net/ipv4/conf/lo/arp_announce
echo “1”>/proc/sys/net/ipv4/conf/lo/arp_ignore
;;
*)
echo $"Usage $0 start| stop)”
exit 1の
;;
ESACは

しかし、Keepalivedはハートビートとは異なり、ループバックアドレスの開始と停止を制御するためにリディレクターがあるため、どのマシンでループバックアドレスを開始すべきかを人間が判断する必要があり、蚊は次のスクリプトを書きます。

# vi /usr/local/bin/check_interface

#!/ビン/bash
#
著者:蚊
#
#スクリプトの説明:
このスクリプトは、現在のサーバーがマスターかどうかを判断します。
現在のサーバがマスターでない場合、ループバックアドレスを開始します。
#ループバックアドレスを停止
#
#VIP_interface自分の状況に応じて設定してください。これはVIPインターフェイスです。
#lo_interface自分の状況に応じて設定してください。ループバックアドレスインタフェースです。

VIP_="0 0"
lo_="lo 0"

I=10

($i !)(0)
Doすること
/sbin/ifconfig| grep $VIP_interface &>/dev/null
ret =$
もし(! $ret-0 ];then
/sbin/ifconfig| grep $lo_&>/dev/null
ret =$
もし(! $ret-0 ];then
/usr/local/bin/startlo
fiは
elseさん
/sbin/ifconfig| grep $lo_&>/dev/null
ret =$
if [ $ret-0 ];then
/usr/local/bin/startlo stop
fiは
fiは
I=10
Sleep 10シングル
Doneたった今

両方のマシンが2つのスクリプトを作成したら、テストの準備が整いました。

まず、必要なすべてのスクリプトに実行可能権限を設定します。適切なサービスを順次開始する

A. Apacheは起動しないでください。
B、# /usr/local/bin/check_interface
#Service Keepalived Startの略。
エラーがなければ、サービスは開始され、keepalivedのログは/var/log/messagesに保存されます。エラーがある場合は自分で確認してください。

テスト1:現在の状態での負荷分散のテスト

方法:IEブラウザを開き、http//192.16 8.21 1.110と入力し、Ctrl+ F 5を使用して更新し続けると、Webページの内容がlinux01とlinux02で切り替わります。

テスト2:Linux01のKeepAliveを停止し、ロードバランシングをテストする

方法:方法:

A、/etc/.d/keepalived
次に、数秒待つと、linux01上のlo 0アドレスが起動し、linux02上のlo 0が停止していることがわかります

B、IEブラウザを開き、http://192.16 8.2 1 1.1 10と入力し、Ctrl+ F 5でリフレッシュし続けると、Webページの内容がlinux01とlinux02で切り替わります。

テスト3:Linux01でKeepalivedをオンにし、Linux01がマスターに戻るかどうかを確認する

方法:keepalivedプログラムを起動し、ifconfigを使用してlinux01上で既にeth0 0インタフェースが起動されていることを観察し、同時にlo 0インタフェースが停止し、linux02上eth0;0インタフェースが停止し、同時にlo 0インタフェースが起動します。

Apacheデュアルコア構築高可用性ロードバランシングチュートリアルが完成しましたが、以下のメッセージを残して議論しましょう。