Nginx
v1.27.xServidor 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 80Caracterí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