GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo redirigir HTTP a HTTPS en Nginx

Introducción

Nginx (pronunciado “Engine-X”) es un servidor web basado en Linux y una aplicación proxy. Nginx es una poderosa herramienta para redirigir y administrar el tráfico web. Se puede configurar fácilmente para redirigir el tráfico web HTTP sin cifrar a un servidor HTTPS cifrado.

Esta guía le mostrará cómo redirigir HTTP a HTTPS usando Nginx.

Requisitos previos

  • Un servidor Linux que ejecuta Nginx
  • Una cuenta de usuario con sudo privilegios
  • Inicio de sesión remoto en un servidor web (opcional, requerido solo si no está trabajando directamente en su servidor web)
  • Acceso a una terminal/línea de comandos (Ctrl-Alt-T o Ctrl-Alt-F2)

Redirección de HTTP a HTTPS

Para aplicar una redirección de HTTP a HTTPS, debe editar el archivo de configuración de Nginx.

En la mayoría de los casos, puede ubicar el archivo en /etc/nginx/sites-disponible directorio. Si no lo encuentra, búsquelo aquí:/etc/nginx/nginx.conf, /usr/local/nginx/conf o /usr/local/etc/nginx .

Una vez que haya localizado el archivo de configuración de Nginx, ábralo en un editor de texto con el comando:

sudo nano /etc/nginx/sites-available/server.conf

Reemplace la ubicación con la ubicación real y el nombre de su archivo de configuración.

Una vez que el archivo de configuración esté abierto para su edición, inserte uno de los bloques de código a continuación. Una vez que haya terminado de editar, guarde el archivo y salga. Luego, reinicie el servicio Nginx con el siguiente comando:

sudo service nginx restart

Nginx Redirigir todo el tráfico HTTP a HTTPS

Abra el archivo de configuración de Nginx para editarlo, luego inserte el siguiente código:

server {

    listen 80 default_server;


    server_name _;


    return 301 https://$host$request_uri;

}

Aquí hay un desglose de los comandos:

  • Listen 80 :Esto indica al sistema que capture todo el tráfico HTTP en el puerto 80
  • Server_name _; :Esto coincidirá con cualquier nombre de host
  • Return 301 :Esto le dice al navegador (y a los motores de búsqueda) que se trata de una redirección permanente
  • https://$host$request_uri :Este es un código corto para especificar la versión HTTPS de lo que el usuario haya escrito

Después de editar, todo el tráfico del servidor predeterminado HTTP se redirige a HTTPS.

Redireccionar un sitio específico

Puede tener varios servidores, pero solo algunos de ellos pueden requerir HTTPS. Especifique el nombre del servidor en el bloque del servidor para redirigir el tráfico seleccionado:

server {

    listen 80 default_server;


    server_name my_app.com;


    return 301 https://my_app.com$request_uri;

}

Reemplace el nombre my_app.com con el nombre del servidor que desea redirigir. También es posible que desee agregar sitios adicionales agregando otro bloque de servidor. Simplemente copie el código y cambie el nombre del servidor.

Aceptar solo conexiones SSL

Agregue este código para asegurarse de que el servidor solo aceptará conexiones SSL en el puerto 443:

server {

    listen 443 ssl default_server;

    server_name my_app.com;

}


server {

    listen 443 ssl;

    server_name my_website.com;

}

Este bloque de código establecerá dos sitios web, my_app.com y mi_sitio_web.com , para aceptar solo conexiones SSL. Puede agregar sitios adicionales mediante el uso de bloques de servidor adicionales.

Redirecciones de página de Nginx

Puede usar el código de reescritura para administrar rápidamente una redirección 301 (permanente) o 302 (temporal):

Location /index.html {

       rewrite ^/oldURL$ https://www.your_domain.com/newURL redirect;

}

La mayoría de las veces, la ubicación será index.html , pero puede especificar cualquier ruta/patrón.

Tenga en cuenta que rewrite El comando solo debe usarse con redireccionamientos 301 o 302.

Cómo redirigir un dominio con Nginx

Esto es útil si ha cambiado de una extensión personalizada (como .biz o .net) a una dirección .com estándar. También se puede usar para redirigir de un nombre de dominio antiguo a un nombre de dominio nuevo.

server {

    listen 80;

    listen 443 ssl;

    server_name www.old_company.com;

    return 301 $scheme://www.new_company.com$request_uri;

}

Para la mayoría de los casos, el return Se prefiere el comando al comando de reescritura.

Redirigir del sitio web con www al sitio web que no es www

Este proceso es similar a una redirección de página estándar:

server {

    server_name www.new_company.com;

    return 301 $scheme://new_company.com$request_uri;

}

Razones para redirigir el tráfico

Hay varias razones para redirigir el tráfico HTTP a HTTPS. Es posible que necesite:

  • Fuerza una conexión encriptada más segura.
  • Mantenga una página con un buen posicionamiento SEO, pero envíe su tráfico a una página nueva.
  • Notificar y enviar tráfico temporalmente a una página "en mantenimiento".
  • Envíe tráfico de forma permanente de un sitio web a otro, es decir, después de una fusión corporativa.

Linux
  1. Cómo usar Nginx para redirigir

  2. Cómo instalar el servidor HTTP Git con Nginx en Ubuntu 16.04

  3. Cómo instalar el servidor HTTP Git con Nginx en Ubuntu 20.04

  4. Cómo instalar el servidor HTTP Git con Nginx en Debian 11

  5. Redirigir HTTP a HTTPS en NginX

Cómo instalar Nginx en Debian 7

Cómo instalar Nginx en Fedora 22

Cómo instalar NGINX en Ubuntu 20.04

Cómo instalar Nginx en CentOS 7

Cómo configurar NGINX en un servidor CentOS 7

Cómo configurar Nginx como equilibrador de carga para Apache o Tomcat para HTTP/HTTPS