記事のディレクトリ
1.ダウンロード
ダウンロードkeepalivedの住所:http://www.keepalived.org/download.html
2、インストールを抽出
2.1、インストールの依存関係
keepalivedのは、コンパイラの依存関係をインストールする必要があります。
yum install -y openssl openssl-devel
2.2、keepalivedのインストール
tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/ #解压到 /usr/local/keepalived 目录下
cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived # prefix指定 keepalived 安装路径
make && make install
3、ブートを設定します
何の使用がないので、Linuxシステムのサービスをインストールするには、keepalivedのデフォルトのインストールパス(デフォルトパス:ローカル/の/ usrを)keepalivedのインストールが完了した後、あなたはいくつかの変更を動作させるために必要があります。
3.1、最初のkeepalivedの設定ファイルをコピーし、フォルダを作成します。
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
3.2、そしてkeepalivedのスクリプトファイルをコピーします。
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/sbin/keepalived /usr/sbin/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
あなたは、ブートを設定することができますchkconfig keepalived on
、この私たちがインストールされています。
4、keepalived.conf構成:
vim /etc/keepalived/keepalived.conf
keepalived.confプロファイルのコメント:
4.1、マスター
## ! Configuration File for keepalived
global_defs {
router_id bhz005 ## 标识节点的字符串,通常为 hostname
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh" ## 执行脚本位置
interval 2 ## 检测时间间隔
weight -20 ## 如果条件成立则权重减20(-20)
}
## 定义虚拟路由 VI_1 为自定义标识。
vrrp_instance VI_1 {
state MASTER ## 主节点为MASTER,备份节点为BACKUP
interface eth6 ## 绑定虚拟IP的网络接口(网卡),与本机IP地址所在的网络接口相同(我这里是eth6)
virtual_router_id 172 ## 虚拟路由ID号
mcast_src_ip 192.168.1.172 ## 本机ip地址
priority 100 ## 优先级配置(0-254的值)
Nopreempt ##
advert_int 1 ## 组播信息发送间隔,俩个节点必须配置一致,默认1s
authentication {
auth_type PASS
auth_pass bhz ## 真实生产环境下对密码进行匹配
}
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.1.170 ## 虚拟ip(vip),可以指定多个
}
}
のChk_nginxの説明:
定期的に分析、優先順位のvrrp_instanceの動的調整のスクリプトとスクリプトの実行結果を実行keepalivedの。重い重量は、次の優先順位の優先順位で右ここで、checkスクリプトの実行が成功した場合、重量は100--20はマスターの優先順位は、バックアップに80未満である、80になった作られて20になります優先順位90は、それが自動的にスタンバイに切り替わります。
スクリプトの実行結果は0と0より大きい重み設定の値である場合、優先度が増加します。
スクリプトの実行結果が0でなく、重量の値が0未満の構成であれば、優先順位は、それに応じて減少します。
4.2、バックアップ
## ! Configuration File for keepalived
global_defs {
router_id bhz006
}
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface eth7
virtual_router_id 173
mcast_src_ip 192.168.1.173
priority 90 ##优先级配置
advert_int 1
authentication {
auth_type PASS
auth_pass bhz
}
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.1.170
}
}
5、nginx_check.shスクリプト:
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
Nginx_check.shスクリプトは二つのマシンのそれぞれにコピーされます/etc/keepalived/
フォルダー。
5.1、nginx_check.sh承認スクリプト
実行権限が与えられ:
chmod +x /etc/keepalived/nginx_check.sh
6、2台のマシンがkeepalivedの開始します
最初のスタートnginxの2機した後、その後、keepalivedの二台のマシンを起動します。
nginxの2機を起動します。
/usr/local/nginx/sbin/nginx # 先启动 nginx
再起動はkeepalivedの:
service keepalived start
表示方法:
ps -ef | grep nginx
ps -ef | grep keepalived
7、テスト
まず、テストすることができる2台のマシンが見ip a
コマンド仮想IPを表示されます、我々はkeepalivedのマシンを停止して、コマンドをテストしますservice keepalived stop
。結果は、現在のマシンは自動的に別のマシンに切り替わり、使用不能停止keepalivedの有することを示しました。
私たちは、スイッチングを達成するために、nginxの問題の場合には我々だけで、設定ファイルが変更されnginxのそれが利用できなくなるようにする必要があり、この時間をテストすることができ、nginxのプロセスを強制終了することができ、その後、強い、また、自動切替サーバーことがわかりましたノード。