elan.simple_nginx_reverse_proxy
Rol de Ansible para una instalación simple de un proxy inverso nginx
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
Información del Autor
ansible-galaxy install elan.simple_nginx_reverse_proxy