Un proxy inverso es una pieza clave en cualquier infraestructura de servidores: permite centralizar la terminación SSL, ocultar las IPs de los servicios internos y balancear la carga.
1. Archivo docker-compose.yml
version: '3.8'
services:
nginx-proxy:
image: nginx:alpine
container_name: nginx-proxy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./conf.d:/etc/nginx/conf.d:ro
- ./certs:/etc/nginx/certs:ro
networks:
- proxy-net
networks:
proxy-net:
external: true
2. Configuración de VirtualHost con Proxy Pass
server {
listen 80;
server_name servicio.danielsh.es;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name servicio.danielsh.es;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
location / {
proxy_pass http://contenedor_servicio:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Leave a Reply