Linux en español
Tutoriales

Redirección de HTTP a HTTPS en Nginx

Redirección de HTTP a HTTPS en Nginx
4 minutos de lectura

En esta guía, vamos a explicar cómo redirigir el tráfico HTTP a HTTPS en Nginx.

Nginx se pronuncia «motor x» es un país libre, de código abierto, de alto rendimiento de HTTP y el servidor proxy inverso responsable para el manejo de la carga de algunos de los sitios más grandes en Internet.

Si eres desarrollador o administrador del sistema son las posibilidades de que usted está tratando con Nginx sobre una base regular. Una de las tareas más comunes que es probable que realizar es la de redirigir el tráfico HTTP para el seguro (HTTPS) versión de su sitio web.

A diferencia de HTTP, donde las peticiones y las respuestas se envían y se devuelve en formato de sólo texto, HTTPS utiliza SSL/TLS para cifrar la comunicación entre el cliente y el servidor.

Hay muchos beneficios de la utilización de HTTPS a través de HTTP, tales como:

  • Todos los datos se cifran en ambas direcciones. Como resultado, la información sensible no se puede leer si interceptado.
  • Google Chrome y todos los otros navegadores populares marcará su sitio web seguro.
  • HTTPS permite usar el HTTP/2 del protocolo, lo que mejora considerablemente el rendimiento del sitio.
  • Google favor HTTPS sitios web. El sitio va a clasificar mejor si se sirve a través de HTTPS.

El método preferido para redirigir HTTP a HTTPS en Nginx es configurar un servidor independiente bloque para cada versión del sitio. Usted debe evitar de redirigir el tráfico a través de la si la directiva, ya que puede provocar un comportamiento impredecible del servidor.

Redirección de HTTP a HTTPS por Sitio

Para redirigir una página web a HTTPS abrir el archivo de configuración de dominio y hacer los siguientes cambios:

server {
    listen 80;
    listen [::]:80;
    server_name linuxenespañol.com www.linuxenespañol.com;
    return 301 https://linuxenespañol.comm$request_uri;
}

Vamos a romper el código línea por línea:

  • listen 80 – El bloque de servidor escuchará las conexiones entrantes en el puerto 80 para el dominio especificado.
  • server_name linuxenespañol.com www.linuxenespañol.com – Especifica el bloque de servidor de nombres de dominio. Asegúrese de reemplazarlo con su nombre de dominio.
  • return 301 https://linuxenespañol.com$request_uri – Redirigir el tráfico a la versión HTTPS del sitio. El $request_uri variable es el original completo URI de la solicitud, incluyendo los argumentos.

Generalmente, usted también desea redirigir el HTTPS www versión del sitio para la no-www, o viceversa. La forma recomendada de hacer la redirección es crear un bloque de servidor para ambos y sin » www » versiones.

Por ejemplo, para redirigir el HTTPS www solicitudes a la no-www, utilice la siguiente configuración:

server {
    listen 80;
    listen [::]:80;
    server_name linuxenespañol.com www.linuxenespañol.com; return 301 https://linuxenespañol.com$request_uri; } server { listen 443 ssl http2; server_name www.linuxenespañol.com; # . . . other code  return 301 https://linuxenespañol.com$request_uri; } server { listen 443 ssl http2; server_name linuxenespañol.com; # . . . other code }

Redirigir Todos los Sitios HTTPS

Si todos los sitios web alojados en el servidor están configurados para utilizar HTTPS, y usted no desea crear un servidor HTTP independiente bloque para cada sitio, usted puede crear un catch-all HTTP server block. Este bloque va a redirigir todas las peticiones HTTP a HTTPS apropiado bloques.

Para crear un único catch-all HTTP bloque que va a redirigir a los visitantes a la versión HTTPS del sitio abra el archivo de configuración de Nginx y hacer los siguientes cambios:

server {
	listen 80 default_server;
	listen [::]:80 default_server;
	server_name _;
	return 301 https://$host$request_uri;
}

Vamos a analizar el código línea por línea:

  • listen 80 default_server – Establece este bloque de servidor como el valor predeterminado (catch-all) bloque para todos los inigualable dominios.
  • server_name __ es un nombre de dominio no válido que nunca coincide con cualquier nombre de dominio real.
  • return 301 https://$host$request_uri – Redirigir el tráfico a la correspondiente servidor HTTPS bloque con el código de estado 301 (redirección Permanente). El $host variable contiene el nombre de dominio de la solicitud.

Por ejemplo, si el visitante se abre http://example.com/page2 en el navegador, Nginx redirigir la petición a https://example.com/page2.

Si es posible, prefieren crear una redirección en función del dominio en lugar de un global de HTTP a HTTPS redirección.

Conclusión

Una vez que usted haya instalado un certificado SSL en su sitio web, usted debe redirigir el tráfico HTTP a HTTPS.

En Nginx, la forma preferida de redirección HTTP a HTTPS es crear un servidor independiente de los bloques y realizar la redirección 301.

Puntuación media / 5. Recuento de votos:

¡Síguenos en redes sociales!

Entradas relaccionadas

Cómo actualizar de Mint 18 a Mint 19

Linux en Español

Cómo verificar la propagación DNS en linux

Diego García Cuesta

Cómo configurar MySQL (MariaDB) Maestro-Esclavo replicado en Debian 10

Diego García Cuesta

Qué es tearing y cómo deshacerse de él en GNU/Linux

Linux en Español

Comando su en Linux (Cambiar de Usuario)

Diego García Cuesta

Cómo mantener debian actualizado con el software más reciente

Linux en Español