Saltar al contenido
ToolMug

Generador de configuración de Nginx

Introduce tu dominio, elige el tipo de sitio y marca las funciones que necesites para obtener una configuración de servidor nginx lista para usar. Cubre proxy inverso (apps de Node.js, Python, Java), sitios estáticos, aplicaciones de página única (React, Vue) y PHP, con redirecciones de HTTP a HTTPS y a www, WebSocket, gzip y caché de archivos estáticos.

Funciona en tu navegador: nada de lo que introduces se sube

HTTPS
Extras

0 mantiene el valor predeterminado de nginx de 1 MB.

Obtén primero el certificado, por ejemplo: certbot certonly --webroot -w /var/www/letsencrypt -d example.com -d www.example.com. Después ejecuta nginx -t y recarga nginx.

Cómo se usa

  1. 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.
  2. Marca HTTPS, HTTP/2, HSTS, la redirección a www, gzip, caché y cabeceras de seguridad según necesites.
  3. 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:

  1. 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 a https://example.com$request_uri con un 301.
  2. El puerto 443 para www.example.com usa el mismo certificado y devuelve un 301 al dominio sin www.
  3. El puerto 443 para example.com sirve 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.

Herramientas relacionadas