GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare Ansible per configurare un proxy inverso

Che cos'è un bilanciatore del carico ? Un sistema di bilanciamento del carico è un modo efficiente per distribuire il traffico di rete tra vari server back-end. È anche noto come server farm o pool di server. Distribuisce le richieste dei client o il carico di rete ai server Web di destinazione. I bilanciatori di carico funzionano secondo il concetto round-robin, che garantisce elevata affidabilità e disponibilità.

Uno scenario

Hai un server web in grado di gestire 100 client alla volta. Improvvisamente le richieste a quel particolare server aumentano del 100 percento. È probabile che il sito Web si arresti in modo anomalo o venga chiuso. Per evitare questa situazione, configurare un server Web di destinazione. In questo scenario, il client non va mai al server Web di destinazione. Invece, la loro richiesta va al server principale e il server principale invia la richiesta al server Web di destinazione. Quando il server Web di destinazione risponde al server Web principale, noto come proxy inverso.

[ Potrebbe piacerti anche: Trasforma un'implementazione Kubernetes in un servizio Knative ]

Utilizzo di HAProxy come proxy

La porta sul server Web principale è chiamata porta frontend. HAProxy è un sistema di bilanciamento del carico HTTP che può essere configurato come proxy inverso. Qui vedremo come ho configurato HAProxy utilizzando un playbook Ansible.

Verifica il sistema in cui è necessario configurare HAProxy

HAProxy non è installato su questo sistema. Puoi confermarlo con il seguente comando:

rpm -q haproxy

Passaggi per configurare HAProxy

Passaggio 1:installazione di HAProxy

Per installare HAProxy, devi usare un pacchetto modulo in cui dai il nome del servizio che vuoi installare:

    - name: "Configure Load balancer"
      package:
        name: haproxy

Passaggio 2:copia il file di configurazione per il proxy inverso

Copia il file di configurazione in modo da poterlo modificare:

cp /etc/haproxy/haproxy.cfg  /root/ws1/haproxy.cfg

Passaggio 3:modifica la porta front-end e assegna IP back-end

Per impostazione predefinita, il frontend è vincolato alla porta 5000. Ho cambiato il numero di porta in 8080. Ho anche applicato un for loop per configurare l'IP di back-end. Ora puoi avviare tutti i server web di cui hai bisogno e non è necessario configurare manualmente l'IP all'interno di /etc/httpd/httpd.conf . Recupererà automaticamente l'IP dall'inventario.

backend app
   balance     roundrobin
{%  for i in groups ["web"] %}
   server  app1{{ loop.index }} {{ i}}:80 check
{% endfor %}

Passaggio 4:copia haproxy.cfg nel nodo gestito

Utilizzo di modello in modalità, copiare il file di configurazione per HAProxy dal nodo del controller al nodo gestito:

    - template:
        dest: "/etc/haproxy/haproxy.cfg"
        src: "/root/ws1/haproxy.cfg"

Passaggio 5:avvia il servizio

Usa il servizio modulo per avviare il servizio HAProxy:

    - service:
        name: "haproxy"
        state: restarted

Controlla il sistema in cui devi installare il server web httpd

Per testare la configurazione HAProxy, configurerai anche httpd sul tuo nodo di destinazione con l'aiuto di Ansible. Per verificare di non avere già httpd sul tuo sistema, usa il seguente comando:

 rpm -q httpd

Passaggio 1 - Installa httpd

Il pacchetto il modulo viene utilizzato per installare httpd sul nodo gestito:

    - name: "HTTPD CONFIGURE"
      package:
        name: httpd

Passaggio 2:copia la pagina web

Il modello il modulo viene utilizzato per copiare la tua pagina web dall'origine alla destinazione:

    - template:
        dest: "/var/www/html/index.html"
        src: "/root/ws1/haproxy.html"

Passaggio 3:avvia il servizio

Il servizio viene utilizzato per avviare il httpd servizio:

    - service:
        name: "haproxy"
        state: restarted

Completa il playbook per configurare il proxy inverso

In questo playbook hai due host diversi con due gruppi diversi. Un gruppo è per il server Web e un altro è per il sistema di bilanciamento del carico:

---
- hosts: web
  tasks:
    - name: "HTTPD CONFIGURE"
      package:
        name: httpd
    - template:
        dest: "/var/www/html/index.html"
        src: "/root/ws1/haproxy.html"
    - service:
        name: "httpd"
        state: restarted
- hosts: lb
  tasks:
    - name: "Configure Load balancer"
      package:
        name: haproxy
    - template:
        dest: "/etc/haproxy/haproxy.cfg"
        src: "/root/ws1/haproxy.cfg"
    - service:
        name: "haproxy"
        state: restarted

Esegui il playbook

ansible-playbook haproxy.yml

Uscita

Il playbook viene eseguito correttamente e il server Web principale può accedere ai due server Web di destinazione utilizzando un sistema di bilanciamento del carico.

[ Cerchi ulteriori informazioni sull'automazione dei sistemi? Inizia con The Automated Enterprise, un libro gratuito di Red Hat. ] 

Conclusione

Il servizio di bilanciamento del carico e il proxy inverso sono stati ora configurati da Ansible. Puoi aggiungere un livello di protezione e disponibilità ai tuoi servizi web aggiungendo HAProxy alla tua infrastruttura. Assicurati di controllare la documentazione per il tuo target specifico per saperne di più.


Linux
  1. Come configurare un server web Apache

  2. Come configurare il servizio di bilanciamento del carico HAProxy

  3. Come utilizzare Ansible per installare e configurare Redis 6 su Ubuntu 20.04

  4. Come utilizzare Ansible per installare e configurare Redis 6 su Debian 11

  5. Come installare e configurare il bilanciamento del carico HAProxy su Debian 11

Come configurare il proxy inverso Nginx su Plesk?

Come configurare IIS in Windows Server 2012

Come configurare il DNS in Windows Server 2012

Come configurare NGINX su un server CentOS 7

Come installare Ansible Server su Ubuntu 18.04

Come configurare HAProxy su CentOS 8