Nginx Redirigir HTTP a HTTPS

Nginx Redirect Http Https



Nginx, pronunciado como Engine x, es una web de alto rendimiento basada en Linux de código abierto y gratuita y un servidor proxy inverso que es responsable de administrar y manejar la carga del mayor tráfico de sitios web en Internet. Nginx es una poderosa herramienta de redireccionamiento que se puede configurar fácilmente en su sistema para redirigir el tráfico web HTTP menos seguro o no cifrado a un servidor web HTTPS cifrado y protegido. Si es un administrador del sistema o un desarrollador, entonces está utilizando el servidor Nginx con regularidad.

En este artículo, trabajaremos en cómo redirigir el tráfico web de HTTP a un HTTPS seguro en Nginx.







Las respuestas y solicitudes se devuelven en forma de texto sin formato en HTTP, mientras que HTTPS usa SSL / TLS para cifrar la comunicación entre el cliente y el sistema del servidor. Por lo tanto, debido a muchas razones, HTTPS se utiliza a través de HTTP, que se enumeran a continuación:



  • Todos los datos entre el cliente-servidor en ambas direcciones están encriptados. Sin embargo, nadie puede acceder a información confidencial si es interceptado.
  • Cuando utiliza HTTPS, Google Chrome y otros navegadores considerarán el dominio de su sitio web como seguro.
  • La versión HTTPS mejora el rendimiento de su sitio web especificado mediante el protocolo HTTP / 2.
  • Si sirve el dominio de su sitio web a través de HTTPS, entonces el sitio web se clasificará mejor en Google, ya que favorece a todos los sitios web seguros HTTPS.

Se prefiere redirigir el tráfico HTTP a HTTPS en Nginx en un bloque de servidor separado para cada versión del sitio. También se recomienda evitar redirigir el tráfico usando if direction, lo que puede causar un comportamiento inusual del servidor.



Redirigir todo el tráfico de HTTP a HTTPS

Agregue los siguientes cambios en el archivo de configuración de Nginx para redirigir todo el tráfico de HTTP a la versión HTTPS:





servidor {
escucha 80servidor_predeterminado;
nombre del servidor _;
regreso 301https://$ anfitrión$ request_uri;
}

A continuación, hemos elaborado cada término mencionado anteriormente:

Escuche 80 default_server: esto le indicará a su sistema que capta todo el tráfico HTTP en el puerto 80.
Server_name _: es el dominio que coincidirá con cualquier nombre de host.



Devuelve 301 https: // $ host $ request_uri - esto le dice a tus motores de búsqueda que lo redireccionan permanentemente. Especifica que la variable $ host contiene los nombres de dominio.

Una vez que cambie los ajustes de configuración, debe volver a cargar los servicios de Nginx en su sistema. Entonces, recargue sus servicios Nginx usando el siguiente comando:

$sudosystemctl recargar nginx

Redirigir HTTP a la versión HTTPS para el dominio especificado en Nginx

Después de instalar el certificado SSL en su dominio, tendrá dos opciones de bloques de servidor para este dominio. Un bloque es para la versión HTTP que escucha en el puerto 80 y la segunda versión es HTTPS en el puerto 443. Sin embargo, para redirigir un único dominio de sitio web de HTTP a HTTPS, debe abrir la configuración de Nginx. Puede ubicar este archivo de configuración en el directorio / etc / nginx / sites-available. En cualquier caso, si no encontró este archivo, puede buscarlo con /etc/nginx/nginx.conf, / usr / local / nginx / conf o / usr / local / etc / nginx, y luego realizar el siguientes cambios en este archivo:

servidor {
escucha 80;
nombre del servidor domain-name.com www.domain-name.com;
regreso 301https://domain-name.com$ request_uri;
}

Entendamos el código anterior línea por línea.
Escuche 80: utilizando el puerto 80, el servidor escuchará todas las conexiones entrantes del dominio especificado.

Server_name domain-name.com www.domain-name.com: especifica los nombres de dominio. Por lo tanto, reemplácelo con el nombre de dominio de su sitio web que desea redirigir.

Devuelve 301 https: //domain-name.com$request_uri: mueve el tráfico a la versión HTTPS del sitio. La variable $ request_uri se usa para el URI de solicitud original completo en el que también se incluyen argumentos.

Con el siguiente método, puede redirigir el tráfico a la versión HTTPS www a la versión sin www del sitio. Se recomienda crear una redirección en un bloque de servidor separado para las versiones sin www y www.

Expliquemos con un ejemplo. Si desea redirigir las solicitudes HTTPS de www a la versión que no es de www, debe seguir la siguiente configuración:

servidor {
escucha 80;
nombre del servidor domain-name.com www.domain-name.com;
regreso 301https://domain-name.com$ request_uri;
}
servidor {
escucha 443 ssl http2;
nombre del servidor www.domain-name.com;
#. . . otro código
regreso 301https://domain-name.com$ request_uri;
}
servidor {
escucha 443 ssl http2;
nombre del servidor domain-name.com;

#. . . otro código
}

Reemplace el nombre de dominio con su dominio, como www.linuxhint.com.

Conclusión

Hemos discutido cómo redirigir el tráfico de la versión HTTP a HTTPS en el servidor Nginx. Al cambiar la configuración del archivo de configuración de Nginx, puede redirigir fácilmente el tráfico a HTTPS para un dominio específico o redirigir todo. Este método, que hemos mencionado en este artículo, puede ayudarlo a hacer que su sitio web sea más seguro al realizar cambios en la experiencia del usuario.