Androide

Redirigir http a https en nginx

Apache HTTPS / SSL Site, Redirect HTTP to HTTPS Tutorial

Apache HTTPS / SSL Site, Redirect HTTP to HTTPS Tutorial

Tabla de contenido:

Anonim

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

Nginx pronuncia "motor x" es un servidor proxy HTTP inverso y de código abierto gratuito de alto rendimiento responsable de manejar la carga de algunos de los sitios más grandes en Internet.

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

Hay muchos beneficios de usar HTTPS sobre HTTP, como:

  • Todos los datos están encriptados en ambas direcciones. Como resultado, la información confidencial no se puede leer si se intercepta. Google Chrome y todos los demás navegadores populares marcarán su sitio web como seguro. HTTPS le permite utilizar el protocolo HTTP / 2, lo que mejora significativamente el rendimiento del sitio. Google favorece los sitios web HTTPS. Su sitio se clasificará mejor si se sirve a través de

El método preferido para redirigir HTTP a HTTPS en Nginx es configurar un bloque de servidor separado para cada versión del sitio. Debe evitar redirigir el tráfico utilizando la directiva if, ya que puede causar un comportamiento impredecible del servidor.

Redirigir HTTP a HTTPS por sitio

Para redirigir un sitio web único a HTTPS, abra el archivo de configuración del dominio y realice los siguientes cambios:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; }

Analicemos el código línea por línea:

  • listen 80 : el bloque del servidor escuchará las conexiones entrantes en el puerto 80 para el dominio especificado. server_name linuxize.com www.linuxize.com : especifica los nombres de dominio del bloque del servidor. Asegúrese de reemplazarlo con su nombre de dominio. return 301 - Redirige el tráfico a la versión HTTPS del sitio. La variable $request_uri es el URI de solicitud original completo que incluye los argumentos.

Por lo general, también querrá redirigir la versión de HTTPS www del sitio a la no www o viceversa. La forma recomendada de hacer la redirección es crear un bloque de servidor separado para las versiones www y no www.

Por ejemplo, para redirigir las solicitudes HTTPS www a no www, usaría la siguiente configuración:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name www.linuxize.com; #… other code return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name linuxize.com; #… other code }

Redireccionar todos los sitios a HTTPS

Si todos los sitios web alojados en el servidor están configurados para usar HTTPS, y no desea crear un bloque de servidor HTTP separado para cada sitio, puede crear un único bloque de servidor HTTP general. Este bloque redirigirá todas las solicitudes HTTP a los bloques HTTPS apropiados.

Para crear un único bloque HTTP general que redirija a los visitantes a la versión HTTPS del sitio, abra el archivo de configuración de Nginx y realice los siguientes cambios:

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

Analicemos el código línea por línea:

  • listen 80 default_server : establece este bloque de servidor como el bloque predeterminado (catch-all) para todos los dominios no coincidentes. server_name _ - _ es un nombre de dominio no válido que nunca coincide con ningún nombre de dominio real. return 301 : redirige el tráfico al bloque de servidor HTTPS correspondiente con el código de estado 301 (movido permanentemente). La variable $host contiene el nombre de dominio de la solicitud.

Por ejemplo, si el visitante abre http://example.com/page2 en el navegador, Nginx redirigirá la solicitud a https://example.com/page2 .

Si es posible, prefiera crear una redirección por dominio en lugar de una redirección global de HTTP a

Conclusión

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

En Nginx, la forma preferida de redirigir HTTP a HTTPS es crear bloques de servidor separados y realizar una redirección 301.

nginx