Volver a Documentación
Nginx

Nginx

v1.27.x

Servidor web y proxy inverso de alto rendimiento

Descripción

Nginx es el servidor web más rápido del mundo para contenido estático. En WicSecure lo usamos como servidor dentro de los contenedores de Next.js para servir el build estático y como proxy para WebSockets en producción.

Uso en WicSecure

Nginx corre dentro de los contenedores de apps Next.js en modo standalone. También se usa como servidor para assets estáticos con caché agresivo (1 año para archivos con hash en el nombre). La configuración de seguridad incluye headers HTTP recomendados por OWASP.

Configuración clave

dockerfileconfig
# nginx.conf para Next.js standalone
server {
    listen 3000;
    server_name _;

    # Seguridad
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header Referrer-Policy strict-origin-when-cross-origin;

    # Assets estáticos con cache agresivo
    location /_next/static/ {
        alias /app/.next/static/;
        expires 1y;
        add_header Cache-Control "public, immutable";
    }

    location / {
        proxy_pass http://localhost:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
    }
}

Ejemplo de uso

dockerfile
# Dockerfile con Nginx para Next.js
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM nginx:1.27-alpine
COPY --from=builder /app/.next/static /usr/share/nginx/html/_next/static
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80

Características clave

  • 10.000+ conexiones concurrentes con ~2.5MB RAM
  • Proxy inverso HTTP/1.1, HTTP/2, WebSocket
  • Módulo de caché con TTL y variantes configurables
  • Compresión gzip/Brotli automática
  • Limita de velocidad (rate limiting) nativo