hoall.nginx-proxy
Rol nginx-proxy
Este rol instala nginx como un servidor proxy. La configuración es solo para uso de https. Así que asegúrate de configurar tu certificado ssl. El dhparam será reemplazado por una nueva versión generada. La generación ocurre durante la instalación. El rol también establece algunos valores predeterminados útiles para servidores proxy.
El nivel de seguridad es moderno en términos de la definición de la Fundación Mozilla (consulta su generador para más información: https://mozilla.github.io/server-side-tls/ssl-config-generator/). La configuración debe ser adecuada para la mayoría de los sistemas. Yo generé las plantillas usando Ubuntu 16.04. HSTS está habilitado. La configuración recibe una calificación A+ en ssllabs.com.
El sitio web predeterminado está mapeado a /. Creé y utilizo el rol para abstraer y asegurar la conexión a mi servidor tomcat.
Si tienes mejoras, crea un pull request.
Requisitos
Un certificado ssl y openssl (para el dhparam). Si estás buscando un buen rol, te sugiero que mires geerlingguy.certbot.
Variables del Rol
NOTA: las variables que deben ser sobrescritas están escritas en MAYÚSCULAS.
Nombre | Valor Predeterminado | Descripción |
---|---|---|
NP_SERVER_NAME |
NONE | 'Una cadena que contiene los nombres a los que el servidor (y la ubicación) deben escuchar. Ej. "example.com www.example.com"' |
NP_SSL_CERTIFICATE |
NONE | 'La ruta a tu certificado ssl (fullchain.pem). Ej. /etc/letsencrypt/live/example.de/fullchain.pem' |
NP_SSL_CERTIFICATE_KEY |
NONE | 'La ruta a la clave privada de tu certificado ssl (privkey.pem). Ej. /etc/letsencrypt/live/example.de/privkey.pem' |
NP_PROXY_PASS |
NONE | 'La ruta a la ubicación. Ej. "http://127.0.0.1:8080/example/"' |
NP_REWRITE |
NONE | 'Regla de reescritura para el sitio web. Ej. "^/example(.*)$ $1 last"' |
np_worker_processes |
{{ ansible_processor_count }} | 'El número de procesos de trabajo que nginx debe usar. El valor predeterminado es uno por núcleo, determinado por la configuración de ansible.' |
np_worker_connections |
1024 | 'El número de conexiones para cada worker_process (incluyendo servidores backend). Ten en cuenta que un navegador abre más de una conexión para aumentar la velocidad.' |
np_keep_alive_timeout |
15 | 'Timeout para una conexión de cliente inactiva en segundos.' |
np_client_max_body_size |
10m | 'Establece el tamaño máximo permitido del cuerpo de la solicitud del cliente, especificado en el campo de encabezado "Content-Length".' |
np_client_body_buffer_size |
10k | 'Establece el tamaño del buffer para leer el cuerpo de la solicitud del cliente.' |
np_proxy_connect_timeout |
10 | 'Define un tiempo de espera para establecer una conexión con un servidor proxy. Cabe destacar que este tiempo de espera normalmente no puede exceder los 75 segundos.' |
np_proxy_send_timeout |
10 | 'Establece un tiempo de espera (en segundos) para transmitir una solicitud al servidor proxy.' |
np_proxy_read_timeout |
10 | 'Define un tiempo de espera (en segundos) para leer una respuesta del servidor proxy.' |
np_proxy_buffers |
"32 8k" | 'Establece el tamaño del buffer utilizado para leer la primera parte de la respuesta recibida del servidor proxy. Esta parte generalmente contiene un pequeño encabezado de respuesta. Por defecto, el tamaño del buffer es igual a una página de memoria. Esto es 4K u 8K, dependiendo de la plataforma. Sin embargo, se puede hacer más pequeño.' |
Nota: partes de esta documentación son de la documentación oficial de nginx (https://nginx.org/en/docs/). Las fuentes y la documentación se distribuyen bajo la licencia BSD de 2 cláusulas.
Modifica las variables de acuerdo a tus necesidades.
Dependencias
Ejemplo de Playbook
- hosts: servers
roles:
- { role: hoall.nginx-proxy, NP_SERVER_NAME: "example.com www.example.com", NP_SSL_CERTIFICATE: /etc/letsencrypt/live/fullchain.pem, NP_SSL_CERTIFICATE_KEY: /etc/letsencrypt/live/privkey.pem }
Licencia
BSD
Información del Autor
Felix Paetow fhmpaetow@fsfe.org
Installation, configuration and hardening of a nginx proxy with one website.
ansible-galaxy install hoall.nginx-proxy