keepalived の概要
keepalived の機能は、サーバーの状態を検出することです。Web サーバーがダウンしているか、動作障害がある場合、keepalived は検出します。障害のあるサーバーはシステムから削除され、他のサーバーがサーバーの作業を置き換えるために使用されます。サーバーが正常に動作している場合、keepalived はサーバーをサーバー グループに自動的に追加します。これらのタスクはすべて、手動介入なしで自動的に完了します。手動で行う必要があるのは、障害が発生したサーバーを修復することだけです。
システム アーキテクチャ図
実装手順
1. 環境構成
##1.1 nginx のインストール
yum install pcre-devel zlib zlib-devel openssl openssl-develアップロード圧縮パッケージを解凍します
tar zxvf nginx-1.12.2.tar.gzディレクトリの作成、構成の検出
mkdir -p /usr/local/nginx ./configure --prefix=/usr/local/nginxプリコンパイルとインストール
make && make install関連コマンドの開始と停止
cd /usr/local/nginx/sbin/ ./nginx ./nginx -s stop ./nginx -s start
1.2 keepalived のインストール
yum install -y keepalived
2. ホスト構成
vim /etc/keepalived/keepalived.conf修正内容は以下の通りです
#新增的配置 vrrp_script chk_http_port { script "/shell/nginx_check.sh" #脚本地址 interval 2 #检测脚本执行的间隔 weight 2 #比重 } vrrp_instance vi_1 { state master #主服务器为master,从服务器为backup interface eth0 #网卡 virtual_router_id 51 #主、备机的virtual_router_id必须相同 priority 100 #主、备机不同的优先级,主机优先级较大,备机值较小,默认是100 advert_int 1 authentication { auth_type pass auth_pass 1111 } #虚拟ip地址 virtual_ipaddress { 192.168.126.88 } }スクリプトファイルの作成
mkdir /shell/nginx_check.sh vim /shell/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
3. スレーブ設定
vrrp_instance vi_1 { state backup #主服务器为master,从服务器为backup interface eth0 #网卡 virtual_router_id 51 #主、备机的virtual_router_id必须相同 priority 50 #主、备机不同的优先级,主机优先级较大,备机值较小 advert_int 1 authentication { auth_type pass auth_pass 1111 } #虚拟ip地址 virtual_ipaddress { 192.168.126.88 } }
4. サービスの開始
service keepalived start仮想 IP アドレスの表示
ip addr 1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state unknown link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state up qlen 1000 link/ether 00:0c:29:4f:31:ce brd ff:ff:ff:ff:ff:ff inet 192.168.126.100/24 brd 192.168.126.255 scope global eth0 inet 192.168.126.88/32 scope global eth0 inet6 fe80::20c:29ff:fe4f:31ce/64 scope link valid_lft forever preferred_lft forever
5. ファイアウォール テストをオフにします
service iptables stop #查看防火墙是否开机自启动 chkconfig --list | grep iptables chkconfig iptables off表示するには仮想 IP アドレスにログインしてください
http://192.168.126.88/
以上がnginx と keepalived を組み合わせて高可用性を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。