In questo tutorial, ti mostreremo come configurare il cluster Nginx High Availability utilizzando Pacemaker su CentOS 7. Per avere un server Nginx che possa funzionare continuamente senza guasti per lungo tempo, dobbiamo configurare il server con istanze Nginx attive-passive . Pacemaker è un software di gestione cluster open source che consente di ottenere la massima disponibilità elevata dei tuoi servizi. È un gestore di cluster ad alta disponibilità avanzato e scalabile distribuito da ClusterLabs, gestisce tutti i servizi del cluster e utilizza le funzionalità di messaggistica e appartenenza del motore del cluster sottostante.
1. Prerequisiti
Per seguire questo tutorial, devi avere:
- 2 o più server
- Sistema operativo CentOS 7
- accesso root a ciascuno dei server
2. Accedi e aggiorna CentOS
ssh root@IP_Address -p7022
yum update yum upgrade
Modifica il file /etc/hosts su entrambi i server con qualsiasi editor di testo terminale di tuo gradimento
nano /etc/hosts
Aggiungi le seguenti righe al file /etc/hosts
192.168.0.22 webserver-01 192.168.0.23 webserver-02
3. Installa Epel Repository e Nginx
Per installare Nginx è necessario il repository Extra Packages for Enterprise Linux (EPEL). Esegui i seguenti comandi su entrambi i server.
yum install epel-release -y yum install nginx -y
systemctl enable nginx systemctl start nginx
4. Modifica pagina indice Nginx predefinita
Una volta terminato, dobbiamo apportare modifiche alla pagina dell'indice Nginx predefinita su entrambi i server.
Esegui il seguente comando sul server uno
echo ‘
server web-01
’ > /usr/share/nginx/html/index.html
Esegui il seguente comando sul server due
echo ‘
server web-02
’ > /usr/share/nginx/html/index.html
5. Installa e configura Pacemaker
In questa sezione installeremo lo stack Pacemaker. Devi completare questo passaggio su entrambi i server.
yum install corosync pacemaker pcs -y
Al termine dell'installazione, abilita l'avvio automatico di tutti i servizi all'avvio del sistema utilizzando i comandi systemctl seguenti.
systemctl enable pacemaker systemctl enable corosync systemctl enable pcsd
6. Sincronizza la configurazione
L'installazione creerà un utente di sistema "hacluster". Abbiamo anche bisogno di eseguire pcsd per sincronizzare la configurazione
systemctl start pcsd
7. Crea una password
Quindi, crea una nuova password per l'utente "hacluster" che era stata creata automaticamente durante l'installazione precedente, dobbiamo utilizzare la stessa password per tutti i server
passwd hacluster
8. Crea cluster
Quindi, esegui questo comando di seguito
pcs cluster auth webserver-01 webserver-02
A questo punto siamo pronti per configurare il cluster.
pcs cluster setup –name rosecluster webserver-01 webserver-02
rosecluster è il nome del cluster, mentre webserver-01 e webserver-02 sono i server che faranno parte di rosecluster.
Abilitalo all'avvio e avvialo ora.
pcs cluster enable –all pcs cluster start –all
Possiamo controllare lo stato del cluster con questo comando:
pcs status
9. Disattiva STONITH
STONITH o Shoot The Other Node In The Head è l'implementazione della scherma su Pacemaker. Se sei in produzione, è meglio abilitare STONITH. Dal momento che non stiamo utilizzando il dispositivo di scherma, disabiliteremo lo STONITH.
Quando esegui il comando pcs status, vedrai un avviso nell'output che dice che nessun dispositivo STONITH è configurato e STONITH non è disabilitato:
AVVERTENZA:nessun dispositivo stonith e stonith abilitato non è falso
Disabilita STONITH con il seguente comando pcs.
pcs property set stonith-enabled=false
10. Ignora la politica del quorum
In questo tutorial, configureremo Pacemaker per ignorare il quorum:
pcs property set no-quorum-policy=ignore
Controlla l'elenco delle proprietà e assicurati che stonith e il criterio del quorum siano disabilitati.
pcs property list
11. Aggiungi risorse
L'IP mobile è l'indirizzo IP che può essere migrato istantaneamente da un server all'altro nella stessa rete, viene utilizzato per supportare il failover in un cluster ad alta disponibilità. In questo tutorial, l'indirizzo IP mobile per il pacemaker High-Availability sarà "192.168.0.100". Per ora, aggiungeremo due risorse, la risorsa dell'indirizzo IP mobile con il nome 'v_ip' e una nuova risorsa per il server web Nginx denominata 'webserver'.
Aggiungi il nuovo indirizzo IP mobile 'v_ip' utilizzando il comando seguente.
pcs resource create v_ip ocf:heartbeat:IPaddr2 ip=192.168.0.100 cidr_netmask=32 op monitor interval=20s
Successivamente, possiamo aggiungere la seconda risorsa al cluster. L'agente di risorse del servizio è ocf:heartbeat:nginx denominato 'webserver'.
pcs resource create webserver ocf:heartbeat:nginx configfile=/etc/nginx/nginx.conf op monitor timeout=”5s” interval=”5s”
Assicurati che non ci siano errori, quindi controlla le risorse.
pcs status resources
Se vedi due risorse; 'v_ip' e 'webserver', significa che l'IP mobile e il server web Nginx sono stati aggiunti.
12. Configura vincoli
In questo passaggio, diremo al server di fare in modo che entrambe le risorse create in precedenza siano in esecuzione sullo stesso host. Fisseremo un vincolo di collocazione per le risorse con un punteggio INFINITY.
pcs constraint colocation add webserver v_ip INFINITY
Imposta la risorsa Nginx (server web) in modo che venga sempre eseguita sullo stesso host in cui v_ip è attivo.
pcs constraint order v_ip then webserver
Per verificare che le risorse siano in esecuzione sullo stesso host, possiamo invocare:
pcs status
13. Testare il cluster.
Vai a http://192.168.0.100 sul tuo browser web, vedrai la pagina Nginx predefinita dal webserver-01.
Quindi, invoca il comando seguente per arrestare il cluster sul server web-01:
pcs cluster stop webserver-01
Ora, se aggiorni la pagina su http://192.168.0.100, otterrai la pagina Nginx predefinita dal server web-02.
Congratulazioni, hai impostato correttamente un cluster attivo-passivo Nginx High Availability con Pacemaker. Se hai un sito Web molto impegnato, potresti considerare di eseguire il tuo sito Web su un Nginx HA. Esistono molti siti Web noti in esecuzione su Nginx HA e utilizzano Nginx HA per fornire i propri contenuti in modo rapido, affidabile e sicuro.
Ovviamente, non è necessario configurare il cluster ad alta disponibilità Nginx utilizzando Pacemaker su CentOS 7, se utilizzi una delle nostre soluzioni di hosting Nginx, nel qual caso puoi semplicemente chiedere ai nostri amministratori Linux esperti di aiutarti in questo. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.
PS . Se ti è piaciuto questo post su come configurare il cluster ad alta disponibilità Nginx utilizzando Pacemaker su CentOS 7, condividilo con i tuoi amici sui social network utilizzando i pulsanti a sinistra o lascia semplicemente una risposta di seguito. Grazie.