Métodos de pago Abuse

Cómo redirigir de http a https Nginx

22.03.2021, 19:19

Las tendencias modernas en Internet dictan el uso del protocolo de comunicación segura https. Así que al migrar es importante que todo el tráfico que llega al puerto http se redirige automáticamente a https. Esta es una condición importante no sólo para los sitios que pueden perder algo de tráfico, sino también para los usuarios, para que nadie pueda romper una conexión no segura. A continuación vamos a ver cómo configurar la redirección de http a https Nginx.

Cómo redirigir de http a https Nginx

Recomendamos utilizar la redirección con código de estado 301. Indica a los motores de búsqueda o al navegador que el enlace actual ha sido actualizado y que debe ser actualizado en su base de datos, por ejemplo, los marcadores del navegador. Si abrimos el archivo de configuración, podemos encontrar dos secciones servidor, para https sitio y http sitio. En la sección http simplemente se redirigen todas las peticiones a https utilizando la instrucción return, y en la segunda sección se procesa todo. Por ejemplo, la primera sección:

server {
server_name losst.ru www.losst.ru;
charset off;
index index.php;
ssi on;
return 301 https://$host:443$request_uri;
set $root_path /var/www/losst/data/www/losst.ru;
root $root_path;
listen :80 default_server;
...
}

Cómo redirigir de http a https Nginx

La segunda sección sigue las peticiones en el puerto 433:

server {
server_name losst.ru www.losst.ru;
ssl on;
ssl_certificate "/var/www/losst/losst.ru_le2.crtca";
ssl_certificate_key "/var/www/losst/losst.ru_le2.key";
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
add_header Strict-Transport-Security "max-age=31536000;";
charset off;
index index.php;
set $root_path /var/www/losst/data/www/losst.ru;
root $root_path;
listen :443 default_server;
...
}

Como puedes ver, la sintaxis en este caso es muy simple y clara. Así, la instrucción return nos permite devolver los códigos de respuesta del servidor necesarios. Así, devolvemos el código 301, la redirección permanente y la URL a la que vamos a redirigir al usuario. Además de la directiva return, puede utilizar la instrucción rewrite, que realiza exactamente las mismas acciones:

rewrite ^/(.*)$ https://losst.com/$1 permanent;

En la sintaxis de las expresiones regulares, puede añadir el dominio en lugar de return 301. También puede utilizar una construcción de este tipo sin un bloque de servidor separado:

if ($host ~* ^(losst.ru|www.losst.ru)$ ){
rewrite ^/(.*)$ https://losst.ru/$1 permanent;
}

A continuación, debe guardar el archivo y comprobar la configuración de Nginx. Para ello se utiliza:

$ sudo nginx -t

настройка Nginx

Si todo está bien, reinicia Nginx:

$ sudo systemctl restart nginx

Comprueba qué tipo de respuesta del servidor obtienes con curl:

$ curl -I losst.ru

настройка Nginx

O deja que la utilidad siga la ruta de redirección completa:

$ curl ILa losst.ru

настройка Nginx

Como se puede ver, la configuración de una redirección a https nginx es bastante simple, el trabajo se realiza mediante la adición de una línea en el archivo de configuración, el resto son todos los parámetros adicionales.