geerlingguy.nginx
Rol de Ansible: Nginx
Nota: Por favor, considera usar el rol oficial de NGINX Ansible de NGINX, Inc.
Instala Nginx en servidores RedHat/CentOS, Debian/Ubuntu, Archlinux, FreeBSD u OpenBSD.
Este rol instala y configura la versión más reciente de Nginx desde el repositorio de yum de Nginx (en sistemas basados en RedHat), apt (en sistemas basados en Debian), pacman (Archlinux), pkgng (en sistemas FreeBSD) o pkg_add (en sistemas OpenBSD). Es probable que necesites hacer trabajo de configuración adicional después de que este rol haya instalado Nginx, como agregar tu propio archivo [virtualhost].conf dentro de /etc/nginx/conf.d/
, describiendo la ubicación y opciones para usar en tu sitio web.
Requisitos
Ninguno.
Variables del rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml
):
nginx_listen_ipv6: true
Indica si se debe escuchar en IPv6 (aplicado a todos los vhosts manejados por este rol).
nginx_vhosts: []
Una lista de definiciones de vhosts (bloques de servidor) para los hosts virtuales de Nginx. Cada entrada creará un archivo de configuración separado nombrado por server_name
. Si se deja vacío, necesitarás proporcionar tu propia configuración de host virtual. Ve el ejemplo comentado en defaults/main.yml
para opciones de servidor disponibles.
Ejemplo de un vhost completamente poblado:
nginx_vhosts:
- listen: "443 ssl http2"
server_name: "example.com"
server_name_redirect: "www.example.com"
root: "/var/www/example.com"
index: "index.php index.html index.htm"
error_page: ""
access_log: ""
error_log: ""
state: "present"
template: "{{ nginx_vhost_template }}"
filename: "example.com.conf"
extra_parameters: |
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
Nota: El filename
predeterminado es el primer dominio en server_name
, si tienes dos vhosts con el mismo dominio, por ejemplo, un redireccionamiento, debes establecer manualmente el filename
para que el segundo no sobrescriba el primero.
nginx_remove_default_vhost: false
Indica si se debe eliminar la configuración del 'virtualhost' predeterminado suministrada por Nginx. Útil si deseas que la URL base /
se dirija a uno de tus propios hosts virtuales configurados en un archivo .conf separado.
nginx_upstreams: []
Si estás configurando Nginx como un balanceador de carga, puedes definir uno o más conjuntos de upstream usando esta variable.
nginx_user: "nginx"
El usuario bajo el cual se ejecutará Nginx.
nginx_worker_processes: "{{ ansible_processor_vcpus|default(ansible_processor_count) }}"
nginx_worker_connections: "1024"
nginx_multi_accept: "off"
Configuraciones de procesos y conexiones de Nginx.
nginx_error_log: "/var/log/nginx/error.log warn"
nginx_access_log: "/var/log/nginx/access.log main buffer=16k flush=2m"
Configuración de los registros de error y acceso predeterminados.
nginx_keepalive_timeout: "65"
nginx_keepalive_requests: "100"
Configuraciones de keepalive de Nginx.
nginx_client_max_body_size: "64m"
Este valor determina el mayor tamaño de archivo que se puede cargar.
Plantillas de configuración
Si no puedes personalizar a través de las variables porque una opción no está expuesta, puedes sobrescribir la plantilla utilizada para generar los archivos de configuración del host virtual o el archivo nginx.conf
.
nginx_conf_template: "nginx.conf.j2"
nginx_vhost_template: "vhost.j2"
Ejemplo de Playbook
- hosts: server
roles:
- { role: geerlingguy.nginx }
Licencia
MIT / BSD
Información del autor
Este rol fue creado en 2014 por Jeff Geerling, autor de Ansible for DevOps.
Nginx installation for Linux, FreeBSD and OpenBSD.
ansible-galaxy install geerlingguy.nginx