Nginx

Cómo redirigir URL en Nginx

Cómo redirigir URL en Nginx
Nginx es un servidor web ligero, que a menudo se utiliza como proxy inverso, servidor web y también como equilibrador de carga. Nginx, por defecto, viene con muchas características útiles, y se pueden agregar más como módulos cuando se está instalando. Esta guía tiene la intención de demostrar cómo usar Nginx para redirigir URL a diferentes direcciones. Aunque Nginx proporciona una gran cantidad de funciones para redirigir URL, esta guía utiliza una fracción de ellas, ya que su intención es enseñar solo las esenciales en la redirección de URL. Las áreas cubiertas en esta guía son redirigir las URL no seguras (puerto 80) a su versión segura, redirigir una solicitud a la IP a un nombre de dominio y, finalmente, redirigir cualquier otro subdominio o dominio al dominio principal.

Pre requisitos

En primer lugar, esta guía asume que el usuario tiene un cliente SSH adecuado instalado en la computadora, si no, continúe e instale Putty como cliente, luego use los siguientes comandos. Además, al tener Nginx, también se requiere el editor Nano.

  1. Escriba los siguientes comandos para instalar el editor de texto Nano. El primer comando ayuda a recuperar los paquetes más recientes de los repositorios, y el segundo comando instala la última versión del editor de texto nano.
sudo apt-get update
sudo apt-get install nano
  1. En la ventana de terminal, escriba el siguiente comando para cambiar el directorio actual al directorio nginx.
cd / etc / nginx / sites-available
  1. Ahora escribe nano predeterminado o el nombre del archivo asociado con el dominio para cambiar la configuración del dominio.
  2. Desde ahora, siga uno de los siguientes segmentos para continuar.

Redirigir desde HTTP (puerto 80)

Google, Bing y muchos otros motores de búsqueda hoy en día favorecen los sitios web con una conexión encriptada. Cuando la conexión entre el cliente y el servidor está cifrada, los datos que se transmiten a través de esa conexión en particular son seguros y, por lo tanto, los terceros no pueden acceder a esos datos. Cuando la conexión no está encriptada, dichos sitios son inseguros y, por lo tanto, ponen en peligro la seguridad de los datos. Un sitio web inseguro utiliza el puerto 80 para brindar su servicio al público. Desafortunadamente, de forma predeterminada, el navegador web se conecta con el puerto 80, ya que el servidor web asume que es lo que el cliente quiere de forma predeterminada y, por lo tanto, la solicitud debe redirigirse a su versión segura. Hay varias formas de hacerlo con Nginx.

Método 1

Si el nombre de dominio actual está disponible y recibe solicitudes de los clientes, entonces pueden ser redirigidos a otro dominio con el siguiente fragmento de código. Simplemente cópielo al archivo predeterminado o al archivo del dominio.

El parámetro de servidor predeterminado especifica que este bloque de servidor es el servidor predeterminado, por lo tanto, cualquier solicitud al puerto 80 ejecuta este bloque de servidor al principio de forma predeterminada, y luego sigue el resto. El paréntesis significa que también captura solicitudes de redes ipv6. El retorno 310 significa que la redirección es permanente y, por lo tanto, el jugo de enlace se transmite junto con él.

servidor
escuchar 80 default_server;
escuchar [::]: 80 default_server;
nombre_servidor dominio.com www.dominio.com;
return 301 https: // dominio.com $ request_uri;

Método 2

Si el servidor actual no tiene un sitio web adjunto y el requisito es redirigir las solicitudes al puerto 80, se puede utilizar el siguiente bloque de servidor. Cópielo en el archivo predeterminado como se indicó anteriormente. Aquí _ (subrayado) significa cualquier dominio. Como antes, el parámetro default_server, paréntesis (para direcciones IPv6) como atributos opcionales también se pueden usar aquí.

servidor
escuchar 80 default_server;
nombre del servidor _;
return 301 https: // $ host $ request_uri;

Método 3

El siguiente fragmento de código significa que si la conexión no está encriptada, lo que significa que el puerto 80 recibe solicitudes, luego se redirigen a una versión segura del dominio especificado. Esto debe copiarse en cualquier lugar del bloque de servidor , pero después del parámetro server_name.

if ($ esquema != "https")
return 301 https: // $ host $ request_uri;

Redirigir desde la dirección IP

A diferencia de un host compartido, tanto los servidores dedicados como los servidores privados virtuales siempre tienen una dirección IP dedicada asignada. Si el servidor web está configurado con Nginx con guión bajo (lo que significa que el servidor procesa cada solicitud), cualquier solicitud a la dirección IP también obtiene acceso al sitio web. Tener acceso al sitio web a través de una dirección IP no es algo que todos los webmasters desean debido a varias razones. Por otro lado, si se procesan todas las solicitudes, los usuarios malintencionados pueden asociar cualquier dominio aleatorio con el servidor web, lo que no es bueno para el nombre de la marca o el negocio y, por lo tanto, es importante procesar solo las solicitudes a dominios específicos o y dirección IP. Este segmento demuestra en tales casos cómo procesar solicitudes a la dirección IP del servidor web. El uso de este bloque de código junto con uno de los bloques de código anteriores (excepto el método 2 de la solución anterior) garantiza que cada solicitud a ambos dominios y la IP se redirija al destino deseado.

Como se dijo anteriormente, copie el siguiente fragmento de código en el archivo predeterminado de Nginx (requisitos previos, tercer paso). En lugar de usar el nombre del dominio en el parámetro server_name, simplemente use la dirección IP del servidor, luego, en la siguiente línea, use "return 301 domain" al lugar donde se redirige la solicitud. Ahora, cuando se recibe una solicitud a esta dirección IP en particular en el servidor, se redirige al dominio indicado. Un mejor ejemplo de eso es, cuando un usuario aleatorio escribe la IP del servidor web para acceder al sitio directamente. Si el siguiente fragmento de código no se indica en ningún lugar del archivo predeterminado, no se procesa ninguna solicitud a la IP; por lo tanto, los usuarios no pueden acceder al sitio web a través de la dirección IP.

servidor
escucha 80;
escuchar [::]: 80;
escuchar 443 ssl http2;
escuchar [::]: 443 ssl http2;
nombre_servidor 192.168.1.1;
volver 301 https: // nucuta.com;

Redirigir desde cualquier otro dominio

Esta solución es la misma que la primera solución de esta guía, excepto que también redirige las solicitudes al puerto 443 del servidor web, lo que significa que tanto las solicitudes seguras como las no seguras se redirigen al dominio indicado en el parámetro de retorno. Como se dijo anteriormente, simplemente copie esto en el archivo predeterminado.

servidor
escucha 80;
escuchar [::]: 80;
escuchar 443 ssl http2;
escuchar [::]: 443 ssl http2;
nombre_servidor dominio.com www.dominio.com;
volver 301 https: // nucuta.com;

Finalizando

Después de seguir una de las soluciones anteriores, el archivo nginx debe compilarse para que su configuración entre en vigencia. Sin embargo, el archivo predeterminado debe probarse antes de compilar, ya que evita que el servidor web se bloquee si hubo un error en la configuración.

  1. Simplemente use el siguiente comando en la terminal de Linux para probar el archivo de configuración predeterminado, si el resultado es bueno, continúe con el siguiente paso.
sudo nginx -t
  1. Utilice uno de los siguientes comandos para reiniciar el servidor web Nginx. El comando depende del nombre y la versión de la distribución de Linux.
sudo systemctl reiniciar nginx
sudo servicio nginx recarga
sudo / etc / init.d / nginx recarga
Herramientas útiles para jugadores de Linux
Si le gusta jugar juegos en Linux, es probable que haya utilizado aplicaciones y utilidades como Wine, Lutris y OBS Studio para mejorar la experiencia...
Juegos HD remasterizados para Linux que nunca tuvieron un lanzamiento de Linux antes
Muchos desarrolladores y editores de juegos están creando una remasterización HD de juegos antiguos para extender la vida útil de la franquicia, por f...
Cómo usar AutoKey para automatizar juegos de Linux
AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MAC...