elan.simple_nginx_reverse_proxy

Rol de Ansible para una instalación simple de un proxy inverso nginx

molécula

Este rol instala nginx como un simple proxy inverso.

Variables del Rol

Para una visión completa de las opciones de configuración, consulta los valores predeterminados.

Configuración del Proxy

Este rol viene con una configuración predeterminada que redirige automáticamente a HTTPS y te permite especificar un bloque simple para configurar Nginx:

nginx_proxy: |
  location / {
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header        X-Forwarded-Proto $scheme;
    proxy_pass              http://127.0.0.1:8080;
  }

Certificados TLS

La configuración predeterminada proporciona certificados simples y auto-firmados si no existen. Asegúrate de reemplazarlos con tus propios certificados. Simplemente sobreescribe los siguientes archivos:

  • /etc/nginx/tls/certificate.key;
  • /etc/nginx/tls/certificate.crt;

Configuración Avanzada

Puedes establecer la opción nginx_config para sobreescribir la configuración predeterminada y especificar tu propio conjunto de archivos de configuración. Define una lista de campos src y dest que especifiquen las plantillas a implementar. El campo dest siempre especifica una ubicación relativa a /etc/nginx/:

roles:
  - role: elan.simple_nginx_reverse_proxy
    nginx_config:
      - src: nginx.conf
        dest: nginx.conf

Ten en cuenta que el rol incluye una plantilla de nginx.conf. Especificar src: nginx.conf siempre utilizará la plantilla incluida.

Configuración Relacionada con la Seguridad

Este rol puede abrir puertos para Nginx en firewalld o ufw. También puede establecer el booleano de SELinux para permitir que Nginx actúe como un proxy inverso. Estas configuraciones están deshabilitadas por defecto y debes habilitarlas explícitamente:

  • configure_for_firewalld: true
  • configure_for_ufw: true
  • configure_for_selinux: true

Ejemplo de Playbook

Tu playbook podría verse así:

---

- hosts: all
  become: true
  roles:
    - role: elan.simple_nginx_reverse_proxy
      configure_for_firewalld: true

Desarrollo

Para desarrollo y pruebas, puedes usar molecule. Con podman como controlador, puedes instalarlo así – preferiblemente en un entorno virtual:

pip install -r .dev_requirements.txt

Luego puedes crear las instancias de prueba, aplicar la configuración de ansible (convergir) y destruir las instancias de prueba con estos comandos:

molecule create
molecule converge
molecule destroy

Licencia

BSD-3-Clause

Información del Autor

ELAN e.V

Acerca del proyecto

Installs and prepares Nginx as reverse proxy

Instalar
ansible-galaxy install elan.simple_nginx_reverse_proxy
Licencia
bsd-3-clause
Descargas
24.6k
Propietario
elan e.V. is a German non-profit organization helping universities and other higher education organizations with all things related to e-learning