Cómo redirigir URLs con NGINX ⋆ ALexHost SRL

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills
27.11.2024

Cómo redirigir URLs con NGINX

La gestión eficaz del tráfico web comienza con una solución de alojamiento segura y fiable. Los Servidores Dedicados de AlexHost proporcionan el entorno perfecto para ejecutar NGINX y configurar reglas de redirección de URL robustas. Con un alto rendimiento, acceso root completo y seguridad de nivel empresarial, AlexHost garantiza que su servidor web funcione sin problemas, ya sea que esté migrando dominios, aplicando HTTPS u optimizando el flujo de tráfico.

La redirección de URL es una herramienta crucial para gestionar el tráfico web, mejorar la experiencia del usuario y garantizar el cumplimiento de las mejores prácticas de SEO. Ya sea que esté migrando un sitio web, reestructurando contenido o simplemente arreglando enlaces rotos, la redirección de URL garantiza que los usuarios y los motores de búsqueda sean enviados a la ubicación correcta. En este artículo, exploraremos cómo redirigir URLs utilizando NGINX, uno de los servidores web más utilizados hoy en día.

Comprender la redirección de URL

Antes de entrar en los aspectos técnicos, vamos a explicar brevemente qué es la redirección de URL y por qué es importante. La redirección de URL es una forma de reenviar una URL a otra. Esto asegura que los usuarios que visiten la URL antigua sean enviados automáticamente a la nueva sin encontrarse con un error 404. Existen varios tipos de redireccionamientos, entre ellos:

  1. 301 Redirección permanente – Indica que la URL se ha movido permanentemente.
  2. 302 Redirección temporal – Indica que la URL se ha movido temporalmente.
  3. 307Redirección temporal – Una versión más específica de 302 utilizada en algunos casos.
  4. 308 Redirecciónpermanente – Similar a 301 pero conserva el método de solicitud (por ejemplo, POST) durante la redirección.

NGINX, con sus sencillos archivos de configuración y su alto rendimiento, es una herramienta excelente para gestionar las redirecciones de forma eficiente.

Requisitos previos

Antes de proceder con la redirección de URL utilizando NGINX, necesitará lo siguiente:

  • NGINX instalado y ejecutándose en su servidor
  • Acceso root o sudo al servidor
  • Conocimientos básicos de los archivos de configuración de NGINX
  • Editor de texto como
    nano
    o
    vim
    instalado

Paso 1: Acceder a los archivos de configuración de NGINX

El primer paso es acceder y modificar el fichero de configuración de NGINX donde están definidos los bloques de tu servidor. Dependiendo de su sistema, los archivos de configuración de NGINX suelen almacenarse en:

  • /etc/nginx/nginx.conf (configuración principal)
  • /etc/nginx/sites-available/default (configuraciones específicas del sitio)

Para editar el archivo de configuración de un sitio específico, utilice el siguiente comando:

sudo nano /etc/nginx/sites-available/default

Esto abrirá el archivo de configuración del sitio por defecto en el editor de texto

nano
. También puede especificar el archivo de configuración para un sitio web específico alojado en su servidor.

Paso 2: Redirección básica usando la directiva
return

Una de las formas más sencillas de redireccionar una URL en NGINX es utilizando la directiva

return
. Aquí tiene un ejemplo básico de cómo implementar una redirección 301 (permanente) para una sola página:

servidor {
listen 80;
nombre_servidor www.old-site.com;
ubicación /página-vieja {
return 301 http://www.new-site.com/new-page;
}
}

Esta configuración escucha peticiones en el puerto 80 (HTTP) y busca la URL

/página-antigua
. Cuando un usuario visita esta URL, es redirigido permanentemente a
http://www.new-site.com/new-page.

Paso 3: Uso de la directiva de
reescritura
para redirecciones avanzadas

Para escenarios de redirección más complejos, la directiva de

reescritura
de NGINX puede ser extremadamente útil. Le permite comparar patrones de URL utilizando expresiones regulares y transformarlos según sea necesario.

Ejemplo: Redirigir todas las páginas a un nuevo dominio

Si ha trasladado todo un sitio a un nuevo dominio y desea redirigir todo el tráfico, utilice la siguiente configuración:

servidor {
listen 80;
nombre_servidor www.old-site.com;
rewrite ^(.*)$ http://www.new-site.com$1 permanente;
}

Aquí, la directiva

rewrite
toma cualquier petición entrante
(.*)
y la añade al nuevo dominio
$1
, seguido de una redirección permanente 301. Esto garantiza que todas las páginas del sitio antiguo apunten a sus páginas correspondientes en el sitio nuevo.

Ejemplo: Redirección de HTTP a HTTPS

Es una buena práctica común redirigir todo el tráfico HTTP a HTTPS por motivos de seguridad. Puede conseguirlo fácilmente con la siguiente configuración:

servidor {
listen 80;

nombre_servidorwww.example.com;return 301 https://$nombre_servidor$request_uri;
}

Esta directiva garantiza que cualquier petición al sitio a través de HTTP se redirija permanentemente a HTTPS. La variable

$server_name
rellena automáticamente su dominio, mientras que
$request_uri
mantiene intactas la ruta y la cadena de consulta.

Paso 4: Redirecciones condicionales

NGINX también permite redirecciones condicionales basadas en factores como agentes de usuario, cookies o direcciones IP. A continuación se muestra un ejemplo de cómo redirigir a los usuarios en función de su agente de usuario (por ejemplo, redirigir a los usuarios móviles a una versión móvil del sitio):

if ($http_user_agent ~* "(Android|iPhone|iPad)") {
rewrite ^/$ http://m.example.com redirect;
}

En este ejemplo, si el agente de usuario contiene la cadena “Android”, “iPhone” o “iPad”, el usuario es redirigido a la versión móvil del sitio.

Paso 5: Probar la configuración

Una vez realizados los cambios en la configuración de NGINX, es esencial comprobar si existen errores de sintaxis antes de reiniciar el servidor. Utilice el siguiente comando para comprobar su configuración:

sudo nginx -t

Si la prueba tiene éxito, verás un mensaje como:

nginx: archivo de configuración /etc/nginx/nginx.conf prueba tiene éxito

Paso 6: Recargar NGINX

Una vez validada la configuración, aplique los cambios recargando NGINX:

sudo systemctl reload nginx

Esto recargará el servicio NGINX y aplicará las nuevas reglas de redirección sin interrumpir las conexiones activas.

Paso 7: Monitorización y depuración

Es importante supervisar los registros de NGINX para asegurarse de que las reglas de redirección funcionan como se espera. Los archivos de registro se encuentran normalmente en:

  • /var/log/nginx/access.log – Contiene detalles sobre cada petición.
  • /var/log/nginx/error. log – Registra los errores encontrados.

Si su redirección no está funcionando según lo previsto, estos registros pueden ayudarle a identificar cualquier problema.

Casos de uso común para la redirección de URL

Estos son algunos escenarios comunes en los que la redirección de URL puede ser beneficiosa:

  1. Migración a un nuevo dominio: Redirigir todas las URL del dominio antiguo al nuevo para mantener el tráfico y la clasificación SEO.
  2. Cambio de una estructura de URL: Redirija las URL antiguas a las nuevas después de reestructurar su sitio web para evitar errores 404.
  3. Reforzar HTTPS: Redirija todas las peticiones HTTP a HTTPS para mejorar la seguridad y la confianza.
  4. Redireccionamiento a una página específica: Redirija el tráfico de una página a otra si la página original está obsoleta o se ha movido.

Conclusión

La redirección de URL mediante NGINX es una potente herramienta para gestionar el tráfico web y garantizar una experiencia de usuario sin problemas. Tanto si está migrando un sitio, aplicando HTTPS o reestructurando URLs, NGINX facilita la configuración y gestión de redirecciones. Siguiendo esta guía, puede configurar reglas de redirección de URL simples y avanzadas, asegurando que tanto los usuarios como los motores de búsqueda sean dirigidos al lugar correcto.

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills