Redirección de HTTP a HTTPS en Nginx: Mejores prácticas
Aprende las formas más efectivas de redirigir automáticamente todo el tráfico HTTP a HTTPS en Nginx, garantizando conexiones seguras para todos tus visitantes.
Introducción
En la web moderna, el uso de HTTPS es obligatorio. No solo protege los datos de tus usuarios, sino que también mejora tu posicionamiento en buscadores (SEO). En esta guía, veremos cómo configurar Nginx para redirigir todo el tráfico HTTP a HTTPS de manera eficiente.
La forma recomendada
La mejor práctica es definir dos bloques de servidor separados: uno para el puerto 80 (HTTP) y otro para el puerto 443 (HTTPS).
server {
listen 80;
server_name tu-dominio.com www.tu-dominio.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name tu-dominio.com www.tu-dominio.com;
# Configuración de tus certificados SSL aquí
...
}
¿Por qué usar return 301?
El código 301 indica una redirección permanente. Esto es ideal para el SEO, ya que le dice a los motores de búsqueda que la versión HTTPS es la única que deben indexar, transfiriendo la autoridad del dominio de HTTP a HTTPS.
Consideraciones adicionales
- HSTS (HTTP Strict Transport Security): Una vez que tengas HTTPS funcionando, considera añadir el encabezado HSTS para forzar a los navegadores a usar siempre HTTPS.
- Certificados: Asegúrate de tener tus certificados SSL (como los de Let's Encrypt) correctamente configurados en el bloque del puerto 443.
- Pruebas: Después de realizar cambios, siempre verifica la configuración con
nginx -ty recarga el servicio consystemctl reload nginx.