ブログ基づいて最適化準備環境
「迅速キープアライブサービスの可用性を切り替えるには、スクリプトキープアライブモード、デュアルメインコンフィギュレーション実行」のスクリプトキープアライブの方法のやり方で実行を
実行モードは、スクリプトを使用する場合は、次のように、スクリプトの設定は次のとおりです。
[root@lb01 script]# cat /server/script/web_check.sh
#!/bin/bash
web_info=$(ps -ef|grep -v grep|grep -c nginx)
if [ $web_info -lt 2 ]
then
systemctl stop keepalived
fi
このアプローチの欠点は、(キープアライブサービスが停止されたため)nginxの修理まあ場合は、キープアライブサービスリソースが戻って急いではないということです
あなたが重みの方法を使用する場合は、VIPを作るために停止し、キープアライブの方法でサービスを維持することができます。
重量値と優先順位を使用する方法(この方法では、我々は未来を防ぐことができ、自分自身に良いを停止nginxの算術んが、サービスが、それは後でnginxの停止であれば、キープアライブ方法の切り替えを停止しないで、自分のキープアライブの問題を開始しません体重、バックアップサーバーを与えるによると、それはときnginxのサービスに復元することが可能で、自動的にリソースを奪う、重み値を計算します)
ケース1:時計重みの設定が正の数の情報である
スクリプトを実行成功をロードする:スクリプトは戻り値を完了0実際の優先=重量値+セット優先事項である
スクリプトが失敗し、負荷B:スクリプトは非ゼロ本当の優先順位の戻り値を完了します=設定された優先度の
アプリケーション备服务器上
(増加重量値)
ケース2:重量負情報セットにフォーカスか
負荷が成功スクリプトの実行:スクリプトを実行すると、0 =実際の優先セット優先順位の値を返し
スクリプト完了値=非ゼロの実際の優先度設定の優先順位を返す:bは負荷スクリプトに失敗し-重み値を
適用主服务器上
(軽量値)
しかし、我々はここにいる効果は、私たちがちょうどリストの1番出口を設定して、後でnginxの停止を利用することが私たちの優先順位を減らすことです。我々は0で終了について話しているが、ここでは以下である。一方で 我々は、構成テーブル缶に唯一の方法であるため、
私はここでの主なキープアライブで設定する方法を持って、否定的な方法を採用します
調製思路
:
マスターキープアライブサーバnginxの------通常の優先度の変更(メイン装置100の初期設定150)
キープアライブブロックオフNGINプライマリサーバが、戻り値が非0の場合--- ---- ----優先度(-100)を減少- 50となる
アドレスVIPキープアライブスタンバイサーバを漂流達成します。
nginxのの主なサービスは、再び起動した場合、戻り値は0〜優先度定数(150)---- VIPキープアライブアドレスとメインサーバに漂流。
キープアライブのメインの設定ファイル:
[root@lb01 conf.d]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lb01
}
vrrp_script check_web {
script "/server/script/web_check.sh"
interval 2
weight -100
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3
}
track_script {
check_web
}
}
注意
:あなたが知っていることはありませんので、我々は、デュアルマスター構成を設定する最後の時間は、唯一の方法、10.0.0.3非存在準備キープアライブ設定では、このものconfigureメイン設定の時間(VIPアドレスを監視する際に、キープアライブとから备
風と共に去りぬ主
サーバ、nginxのは)状況が発生し起動しません
エラー次のようにヒントがあります:
[root@lb01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] bind() to 10.0.0.3:80 failed (99: Cannot assign requested address)
nginx: configuration file /etc/nginx/nginx.conf test failed
ソリューション:
[root@lb01 conf.d]# echo 'net.ipv4.ip_nonlocal_bind = 1' >>/etc/sysctl.conf
[root@lb01 conf.d]# sysctl -p
net.ipv4.ip_nonlocal_bind = 1
情報のマスターの設定スクリプト
[root@lb01 conf.d]# cat /server/script/web_check.sh
#!/bin/bash
web_info=$(ps -ef|grep -v grep|grep -c nginx)
if [ $web_info -lt 2 ]
then
exit 1
else
exit 0
fi
Backupサーバーの設定ファイル(备服务器不必编写判断脚本
!)
の前提は、すでにVIPアドレス10.0.0.3を設定されていないがある場合に監視することができます
[root@lb02 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server smtp.162.com
smtp_connect_timeout 30
router_id lb02
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3
}
}
実験は、nginxのは、メインサーバの後に優れた修復を達成し、自動的にキープアライブの資源を奪うことができ、あなたがキープアライブ人間のサービスを開始することはできません表示されます。
しかし、是出现一点问题
あること、後に最初に構成された、無目的の効果は、特に私は何かが何であるかは変更されませんでした(時間の期間を試運転した後に、達成することができ起こる、私が送信され、これらの構成は、私がスタート構成と今日を押し下げています設定なしの違いを、なぜ今の成功、何の成功を開始しません。)