このソリューションは 2 つの VIP アドレスを使用し、フロントエンドは 2 台のマシンを使用します。1 台の場合は 2 台のマシンが同時に動作します。各マシンからのリクエストは 1 台のマシンに転送され、現在のアーキテクチャ環境に非常に適しています。そのため、このソリューションは Web サイトの高可用性アーキテクチャを実装するために使用されます。
以下では、2 番目の構成を使用して、デュアルマスターの高可用性ロード バランシングを示します。
グループ1
VIP1: 192.168.36.100
マスターnginx: 192.168.36.99
nginxを準備します: 192.168.36.86
2番目のグループ
VIP2: 192.168.36.100
メインnginx: 192.168.36.86
バックアップnginx: 192.168.36.9 9
ウェブサービス:
web1: 192.168 .36.215
web2: 192.168.36.80
1.nginxの設定(インストール省略)
rreeで192.168.36.99と192.168を設定して起動します。 nginx。アクセスが正常か確認してください。web1
http://192.168.36.86:88/
http://192.168.36.99:88/
web2
http://192.168.36.86:99/
http://192.168.36.99:99/
2. keepalived をインストールして構成します (インストール省略)
1)192.168.36.86configuration
vi /etc/keepalived/keepalived.conf
rrreええ2)192.168.36.99構成
vi /etc/keepalived/keepalived.conf
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; upstream web1 { server 192.168.36.215:80 max_fails=3 fail_timeout=3s; } upstream web2 { server 192.168.36.80:80 max_fails=3 fail_timeout=3s; } server { listen 88; server_name localhost; location / { root html; index index.html index.htm; proxy_pass http://web1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 99; server_name localhost; location / { root html; index index.html index.htm; proxy_pass http://web2; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }
vi /etc/keepalived/chk_nginx.sh
! Configuration File for keepalived global_defs { notification_email { monitor@3evip.cn #failover@firewall.loc } notification_email_from tianwei7518@163.com smtp_server smtp.163.com smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_nginx { script "/etc/keepalived/chk_nginx.sh" interval 2 weight 2 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 100 priority 50 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_nginx } virtual_ipaddress { 192.168.36.100 } } vrrp_instance VI_2 { state MASTER interface eth0 virtual_router_id 200 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_nginx } virtual_ipaddress { 192.168.36.200 } }
3. 開始、テスト
nginx と keepalived をそれぞれ開始します: /usr/local/nginx/sbin/nginx
service keepalived start
アクセス:
web1
http://192.168. 36.100:88/
http://192.168.36.200:88/
web2
http://192.168.36.100:99/
http://192 .168.36.200:99 /
には正常にアクセスできます。
キープアライブを閉じてみることができます。閉じる keepalived on 192.168.36.86
サービス keepalived stop
ログを表示:
テール - f /var/log/messages
192.168 .36.86 ログ:
! Configuration File for keepalived global_defs { notification_email { monitor@3evip.cn #failover@firewall.loc } notification_email_from tianwei7518@163.com smtp_server smtp.163.com smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_nginx { script "/etc/keepalived/chk_nginx.sh" interval 2 weight 2 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 100 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_nginx } virtual_ipaddress { 192.168.36.100 } } vrrp_instance VI_2 { state BACKUP interface eth0 virtual_router_id 200 priority 50 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_nginx } virtual_ipaddress { 192.168.36.200 } }
#!/bin/sh #description: # 如果启动失败,则停止keepalived status=$( ps -C nginx --no-heading| wc -l) if [ "${status}" = "0" ]; then /usr/local/nginx/sbin/nginx status2=$( ps -C nginx --no-heading| wc -l) if [ "${status2}" = "0" ]; then service keepalived stop fi fi
192.168.36。ログ: Feb 7 00:39:05 slave-d Keepalived[5738]: Stopping Keepalived v1.2.15 (02/07,2015)
Feb 7 00:39:05 slave-d Keepalived_vrrp[5741]: VRRP_Instance(VI_2) sending 0 priority
Feb 7 00:39:05 slave-d Keepalived_vrrp[5741]: VRRP_Instance(VI_2) removing protocol VIPs.
Feb 7 00:39:05 slave-d Keepalived_healthcheckers[5740]: Netlink reflector reports IP 192.168.36.200 removed
Feb 7 00:39:05 slave-d avahi-daemon[1823]: Withdrawing address record for 192.168.36.200 on eth0.
Feb 7 00:39:11 slave-c Keepalived_vrrp[25103]: VRRP_Instance(VI_2) Transition to MASTER STATE
Feb 7 00:39:12 slave-c Keepalived_vrrp[25103]: VRRP_Instance(VI_2) Entering MASTER STATE
Feb 7 00:39:12 slave-c Keepalived_vrrp[25103]: VRRP_Instance(VI_2) setting protocol VIPs.
Feb 7 00:39:12 slave-c Keepalived_healthcheckers[25102]: Netlink reflector reports IP 192.168.36.200 added
Feb 7 00:39:12 slave-c avahi-daemon[1832]: Registering new address record for 192.168.36.200 on eth0.IPv4.
Feb 7 00:39:12 slave-c Keepalived_vrrp[25103]: VRRP_Instance(VI_2) Sending gratuitous ARPs on eth0 for 192.168.36.200
Feb 7 00:39:17 slave-c Keepalived_vrrp[25103]: VRRP_Instance(VI_2) Sending gratuitous ARPs on eth0 for 192.168.36.200
参考記事:tCentos6.5 Keepalivedの詳細説明とNginxサービスの高可用性
Nginx+Keepalivedを使用して高可用性ロードバランシングを実現
KEEPALIVED+nginxを使用して高可用性と高可用性を実現デュアルマスターノード負荷分散
nginx+keepalived は、nginx デュアルマスター高可用性負荷分散を実現します