geerlingguy.nginx

Rol de Ansible: Nginx

CI

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.

Acerca del proyecto

Nginx installation for Linux, FreeBSD and OpenBSD.

Instalar
ansible-galaxy install geerlingguy.nginx
Licencia
mit
Descargas
12.8M
Propietario
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns