Maison > Opération et maintenance > Nginx > le corps du texte

Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+Keepalived

王林
Libérer: 2023-05-29 20:29:35
avant
987 Les gens l'ont consulté

一.keepalived

keepalived est un logiciel de service qui garantit la haute disponibilité du cluster. Le nœud ayant une priorité élevée dans le réseau est le maître chargé de répondre au package arp du VIP, indiquant aux autres hôtes du réseau la relation de mappage. entre les adresses VIP et mac, et également en utilisant l'option Envoyer des notifications vrrp au réseau sous forme de multicast pour les informer de leurs priorités. Le nœud de sauvegarde est uniquement responsable du traitement des paquets multicast envoyés par le maître. Lorsqu'il constate que la priorité du maître n'est pas aussi élevée que la sienne, ou qu'il ne reçoit pas la notification vrrp du maître, le nœud de sauvegarde passe lui-même au nœud de sauvegarde. état maître.

2. Configuration de l'environnement

  1. Environnement : qemu-kvm, client debian (9.4.0)

  2. Installation de la machine virtuelle qemu-kvm : Introduction à la technologie de virtualisation qemu-kvm

1. deux machines virtuelles utilisant des instantanés temporaires. Les opérations suivantes doivent être effectuées sur les deux machines virtuelles

faramita2016@linux-l9e6:~> qemu-kvm -cpu host -m 512 -hda vdisk.img -net nic -net bridge,br=br0 -snapshot -nographic
Copier après la connexion

2 Définissez l'IP statique de la machine virtuelle

root@debian:~# cat /etc/network/interfaces
# the primary network interface
allow-hotplug ens3
#iface ens3 inet dhcp
iface ens3 inet static
address 10.0.0.3  // 设置ip
netmask 255.0.0.0
gateway 10.0.0.1
hwaddress ether 52:54:00:12:34:53  // 设置mac地址
Copier après la connexion

3 Activez l'IP de la carte réseau

root@debian:~# ip addr del 10.0.0.8/8 dev ens3  // 删除客户机原有ip
root@debian:~# ifdown ens3
root@debian:~# ifup ens3
Copier après la connexion

4.

root@debian:~# apt-get install -y nginx keepalived
Copier après la connexion

5. Modifiez le fichier /var/www/html/index.nginx-debian.html et ajoutez l'adresse IP actuelle de la machine virtuelle pour marquer le serveur répondant réel

root@debian:~# vi /var/www/html/index.nginx-debian.html 
……
<h1>welcome to nginx! 10.0.0.3</h1>
……
Copier après la connexion

Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+Keepalived

3. machine virtuelle de nœud (10.0.0.3), machine virtuelle de nœud de secours (10.0.0.4), IP virtuelle (10.0.0.100)

1 Sur la machine virtuelle du nœud principal, modifiez le fichier /etc/keepalived/keepalived.conf

.

root@debian:~# cat /etc/keepalived/keepalived.conf 
global_defs {
  router_id ri_1  // 标识当前keepalived节点
}

vrrp_script chk_nginx {
  script "/root/chk_nginx.sh"  // 定义监控脚本
  interval 2  // 执行监控脚本的闹中间隔时间
}

vrrp_instance vi_1 {
  state master  // 设置节点为主节点,节点的初始状态
  interface ens3  // 设置绑定虚拟ip的网络接口
  virtual_router_id 50  // vrrp组名,指明节点同属一个组
  priority 100  // 节点优先级,主节点应当高于备用节点
  advert_int 1  // 组播信息发送间隔

  #nopreempt  // 禁止抢占服务,只对备用节点生效,主节点根据priority优先级进行抢占,不受nopreempty控制

  authentication {
    auth_type pass  // 设置认证方式
    auth_pass 123456  // 密码
  }

  virtual_ipaddress {
    10.0.0.100/24  // 设置vip
  }

  track_script {  // 调用监控脚本
    chk_nginx
  }
}
Copier après la connexion

2. Pour la machine virtuelle du nœud de secours, modifiez le fichier /etc/keepalived/keepalived.conf À l'exception des éléments suivants, les autres sont les mêmes que le nœud principal

state backup  // 设置节点为主节点,节点的初始状态
  priority 10  // 节点优先级
Copier après la connexion

3. script de surveillance, modifiez le fichier /root/chk_nginx.sh

root@debian:~# vi /root/chk_nginx.sh 
#!/bin/bash
a=`ps -c nginx --no-header | wc -l`
if [ $a -eq 0 ]
then
  /etc/init.d/keepalived stop
fi
Copier après la connexion

4. Vérifiez le service

1. Exécutez la commande ip a, le maître. La carte réseau du nœud ens3 a été liée à vip (10.0.0.100)2. Dans Sur la machine virtuelle du nœud de sauvegarde, démarrez les services nginx et keepalived

Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+KeepalivedExécutez la commande ip a La carte réseau du nœud de sauvegarde. ens3 n'est pas lié à vip (10.0.0.100)

3. Le navigateur hôte accède à http://10.0.0.100

Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+KeepalivedLa page Web 10.0.0.3 apparaît, indiquant que le service keepalived a pris effet et que le VIP a été lié au nœud maître

4. Dans la machine virtuelle du nœud maître, fermez le service nginx et simulez une panne

root@debian:~# /etc/init.d/nginx start
root@debian:~# /etc/init.d/keepalived start
Copier après la connexion


Exécutez la commande ip a, la carte réseau du nœud principal ens3 n'est pas liée à vip (10.0.0.100) Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+Keepalived

5. Sur la machine virtuelle du nœud de sauvegarde, interrogez l'adresse IP


Exécutez la commande ip a, la carte réseau du nœud de sauvegarde ens3 est liée à vip (10.0.0.100) 10.0.0.100. )Comment implémenter une sauvegarde à chaud sur deux machines avec Nginx+Keepalived

6. Le navigateur hôte accède à http://10.0.0.100


La page Web de 10.0.0.4 apparaît, indiquant que le service keepalived a pris effet et que le VIP a été lié au nœud de sauvegardeComment implémenter une sauvegarde à chaud sur deux machines avec Nginx+Keepalived

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!