Tabla de Contenidos

nginx-proxy

Imagen de Docker con el servidor web Nginx que genera automáticamente las configuraciones para actuar como proxy inverso.

Ejemplo para usar con Compose:

---
services:
  nginx-proxy:
    image: nginxproxy/nginx-proxy
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

Certificados SSL con Let's Encrypt

Para facilitar la petición y renovación automática de certificados SSL con Let's Encrypt, la imagen acme-companion se puede usar con nginx-proxy:

---
services:
  nginx-proxy:
    image: nginxproxy/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - conf:/etc/nginx/conf.d
      - vhost:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - certs:/etc/nginx/certs:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro
  
  nginx-proxy-acme:
    image: nginxproxy/acme-companion
    container_name: nginx-proxy-acme
    volumes_from:
      - nginx-proxy
    volumes:
      - certs:/etc/nginx/certs
      - acme:/etc/acme.sh
      - /var/run/docker.sock:/var/run/docker.sock:ro
    depends_on:
      - nginx-proxy

volumes:
  conf: {}
  vhost: {}
  html: {}
  certs: {}
  acme: {}

Configuración

Por host virtual

En la ruta del contenedor /etc/nginx/vhost.d crearemos un fichero con el mismo nombre que hayamos usado en la variable VIRTUAL_HOST indicando las directivas de Nginx que tendrá dicho host. Por ejemplo, si tenemos un servicio en app.midominio.com, crearemos un fichero llamado app.midominio.com con el contenido que queramos para personalizar el bloque http, server o location según nos interese:

server_tokens off;
client_max_body_size 100m;