Cómo se usa
- Introduce el dominio y elige el tipo de sitio — una dirección de upstream para un proxy inverso, o la raíz web para los demás.
- Marca HTTPS, HTTP/2, HSTS, la redirección a www, gzip, caché y cabeceras de seguridad según necesites.
- Copia o descarga la configuración en /etc/nginx/conf.d/, ejecuta nginx -t y recarga nginx.
Opciones explicadas
- Proxy inverso
- Redirige a la dirección de upstream y pasa Host, X-Real-IP, X-Forwarded-For y X-Forwarded-Proto, así el backend ve la IP y el esquema reales del visitante.
- Aplicación de página única
- Las rutas desconocidas recurren a index.html, así que los routers en modo historial (React Router, Vue Router) no dan 404 al recargar.
- HTTPS
- Las rutas del certificado siguen los valores por defecto de certbot (Let's Encrypt) y las peticiones HTTP reciben una redirección 301 a HTTPS. HTTP/2 usa la forma listen 443 ssl http2, que funciona en todas las versiones de nginx.
- HSTS
- Indica a los navegadores que usen solo HTTPS para el dominio y todos sus subdominios durante un año. Asegúrate primero de que todos los subdominios admiten HTTPS, o quedarán inaccesibles.
Ejemplo: aplicación de página única con HTTPS y www
Con el dominio example.com, «Aplicación de página única», HTTPS, HTTP/2 y «Responder también a www. y redirigirlo» marcados (y «Compresión Gzip», «Cabeceras de seguridad» y «Caché larga para archivos estáticos» desactivados para abreviar), el generador escribe tres bloques server:
- El puerto 80 responde a los dos nombres, mantiene accesible
/.well-known/acme-challenge/para la renovación del certificado y envía todo lo demás ahttps://example.com$request_uricon un 301. - El puerto 443 para
www.example.comusa el mismo certificado y devuelve un 301 al dominio sin www. - El puerto 443 para
example.comsirve el sitio:
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
Los dos bloques HTTPS apuntan a /etc/letsencrypt/live/example.com/fullchain.pem y privkey.pem, permiten TLS 1.2 y 1.3 y usan una caché de sesiones compartida de 10 MB con un tiempo de espera de sesión de un día. La línea try_files es la que hace que, al recargar una ruta del lado del cliente como /settings, se devuelva la aplicación en lugar de un 404.
Preguntas frecuentes
¿Por qué nginx -t avisa de que el parámetro http2 está obsoleto?
Desde nginx 1.25.1 se prefiere la directiva separada http2 on;, pero la 1.24 — la que trae Ubuntu 24.04 y otras — no la entiende. La forma listen ... http2 funciona en todas partes; las versiones más nuevas solo muestran un aviso.
¿El certificado debe incluir www?
Sí, cuando la redirección a www está activada. Solicita los dos nombres, por ejemplo certbot -d example.com -d www.example.com.
¿Las subidas fallan con 413 Request Entity Too Large?
nginx permite un cuerpo de petición de 1 MB por defecto. Ajusta el «Tamaño máximo de subida» a lo que necesites, por ejemplo 100.
¿Las conexiones WebSocket fallan a través del proxy?
El proxy debe reenviar las cabeceras Upgrade y Connection. Marcar «Compatibilidad con WebSocket» las añade y aumenta el tiempo de espera de lectura a una hora.
Privacidad
Esta herramienta funciona por completo en tu navegador. Tus archivos y textos se procesan en tu dispositivo y nunca se suben a nuestros servidores.