====== nginx-proxy ====== Imagen de [[informatica:sistemas_operativos:virtualizacion:docker|Docker]] con el servidor web [[informatica:software:internet:nginx|Nginx]] que genera automáticamente las configuraciones para actuar como proxy inverso. * [[https://hub.docker.com/r/nginxproxy/nginx-proxy|nginx-proxy en Docker Hub]] * [[https://github.com/nginx-proxy/nginx-proxy|Repositorio de código]] (GitHub) * [[https://github.com/nginx-proxy/nginx-proxy/blob/main/docs/README.md|Documentación oficial]] Ejemplo para usar con [[informatica:sistemas_operativos:virtualizacion:docker:docker_compose|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 [[https://letsencrypt.org/es/|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; * [[https://github.com/nginx-proxy/nginx-proxy/tree/main/docs#Per-VIRTUAL_HOST-location-configuration|Documentación oficial sobre la configuración por VIRTUAL_HOST]]