GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar Ansible para configurar un proxy inverso

¿Qué es un equilibrador de carga? ? Un balanceador de carga es una forma eficiente de distribuir el tráfico de red entre varios servidores backend. También se conoce como granja de servidores o grupo de servidores. Distribuye las solicitudes de los clientes o la carga de la red a los servidores web de destino. Los balanceadores de carga funcionan con el concepto de operación por turnos, lo que garantiza una alta confiabilidad y disponibilidad.

Un escenario

Tiene un servidor web que puede administrar 100 clientes a la vez. De repente, las solicitudes a ese servidor en particular aumentan en un 100 por ciento. Es probable que el sitio web se bloquee o finalice. Para evitar esta situación, configure un servidor web de destino. En este escenario, el cliente nunca va al servidor web de destino. En cambio, su solicitud va al servidor maestro y el servidor maestro envía la solicitud al servidor web de destino. Cuando el servidor web de destino responde al servidor web maestro, lo que se conoce como proxy inverso.

[ También te puede interesar: Convierte una implementación de Kubernetes en un servicio de Knative ]

Uso de HAProxy como proxy

El puerto en el servidor web principal se llama puerto frontend. HAProxy es un equilibrador de carga HTTP que se puede configurar como un proxy inverso. Aquí veremos cómo configuré HAProxy usando un libro de jugadas de Ansible.

Verifique el sistema donde necesita configurar HAProxy

HAProxy no está instalado en este sistema. Puede confirmarlo con el siguiente comando:

rpm -q haproxy

Pasos para configurar HAProxy

Paso 1:instalar HAProxy

Para instalar HAProxy, debe usar un paquete módulo donde das el nombre del servicio que quieres instalar:

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

Paso 2:copia el archivo de configuración para el proxy inverso

Copie el archivo de configuración para que pueda modificarlo:

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

Paso 3:cambie el puerto de frontend y asigne direcciones IP de backend

De forma predeterminada, la interfaz está vinculada al puerto 5000. Cambié el número de puerto a 8080. También apliqué un for bucle para configurar la IP de backend. Ahora puede iniciar tantos servidores web como necesite y no es necesario configurar manualmente la IP dentro de /etc/httpd/httpd.conf . Obtendrá automáticamente la IP del inventario.

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

Paso 4:copie haproxy.cfg en el nodo administrado

Uso de plantilla modo, copie el archivo de configuración para HAProxy desde el nodo del controlador al nodo administrado:

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

Paso 5 - Iniciar el servicio

Usa el servicio módulo para iniciar el servicio HAProxy:

    - service:
        name: "haproxy"
        state: restarted

Verifique el sistema donde necesita instalar el servidor web httpd

Para probar la configuración de HAProxy, también configurará httpd en su nodo de destino con la ayuda de Ansible. Para verificar que aún no tiene httpd en su sistema, use el siguiente comando:

 rpm -q httpd

Paso 1 - Instalar httpd

El paquete módulo se utiliza para instalar httpd en el nodo gestionado:

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

Paso 2:copia la página web

La plantilla módulo se utiliza para copiar su página web desde el origen al destino:

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

Paso 3 - Iniciar el servicio

El servicio módulo se utiliza para iniciar el httpd servicio:

    - service:
        name: "haproxy"
        state: restarted

Complete el libro de jugadas para configurar el proxy inverso

En este libro de jugadas, tiene dos hosts diferentes con dos grupos diferentes. Un grupo es para el servidor web y otro es para el balanceador de carga:

---
- 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

Ejecutar el libro de jugadas

ansible-playbook haproxy.yml

Salida

El libro de jugadas se ejecuta correctamente y el servidor web principal puede acceder a los dos servidores web de destino mediante un equilibrador de carga.

[ ¿Busca más información sobre la automatización de sistemas? Comience con The Automated Enterprise, un libro gratuito de Red Hat. ] 

Conclusión

Ansible ya configuró el balanceador de carga y el proxy inverso. Puede agregar una capa de protección y disponibilidad a sus servicios web agregando HAProxy a su infraestructura. Asegúrese de consultar la documentación de su objetivo específico para obtener más información.


Linux
  1. Cómo configurar un servidor web Apache

  2. Cómo configurar el balanceador de carga HAProxy

  3. Cómo usar Ansible para instalar y configurar Redis 6 en Ubuntu 20.04

  4. Cómo usar Ansible para instalar y configurar Redis 6 en Debian 11

  5. Cómo configurar una base de datos esclava de MySQL

¿Cómo configurar el proxy inverso de Nginx en Plesk?

Cómo configurar IIS en Windows Server 2012

Cómo configurar DNS en Windows Server 2012

Cómo configurar NGINX en un servidor CentOS 7

Cómo instalar el servidor Ansible en Ubuntu 18.04

Cómo configurar HAProxy en CentOS 8