Nginx redirige http vers https

Nginx redirige http vers https
Nginx, prononcé sous le nom de «moteur X», est un Web gratuit à haute performance basé sur Linux et un serveur proxy inversé qui est responsable de la gestion et de la gestion de la charge du plus grand trafic de sites Web sur Internet. Nginx est un puissant outil de redirection qui peut être configuré facilement sur votre système pour rediriger le trafic Web HTTP moins sécurisé ou non crypté vers un serveur Web HTTPS crypté et sécurisé. Si vous êtes un administrateur système ou un développeur, vous utilisez régulièrement le serveur Nginx.

Dans cet article, nous travaillerons sur la façon de rediriger le trafic Web de HTTP à un HTTPS sécurisé dans Nginx.

Les réponses et les demandes sont renvoyées sous forme de texte en clair dans HTTP, tandis que le HTTPS utilise SSL / TLS pour crypter la communication entre le client et le système de serveur. Par conséquent, pour de nombreuses raisons, HTTPS est utilisé sur le HTTP, qui sont répertoriés ci-dessous:

  • Toutes les données entre le client-serveur dans les deux sens sont chiffrées. Cependant, quiconque ne peut pas accéder à des informations sensibles en cas d'interception.
  • Lorsque vous utilisez HTTPS, Google Chrome et d'autres navigateurs considéreront votre domaine de site Web comme sûr.
  • La version HTTPS améliore les performances de votre site Web spécifié à l'aide du protocole HTTP / 2.
  • Si vous servez le domaine de votre site Web via HTTPS, le site Web se classera mieux sur Google, car il favorise tous les sites Web sécurisés HTTPS.

Il est préféré pour rediriger le trafic HTTP vers HTTPS dans Nginx dans un bloc de serveur séparé pour chaque version du site. Il est également recommandé d'éviter de rediriger le trafic en utilisant une direction «si» qui peut provoquer un comportement inhabituel du serveur.

Redirigez tout le trafic de HTTP vers HTTPS

Ajoutez les modifications suivantes dans le fichier de configuration Nginx afin de rediriger tout le trafic de HTTP à la version HTTPS:

serveur
écouter 80 default_server;
nom du serveur _;
retour 301 https: // $ host $ request_uri;

Ci-dessous, nous avons élaboré chaque terme susmentionné:

Écouter 80 default_server - Cela signalera votre système qui attrape tout le trafic HTTP sur le port 80.
Server_name _ - c'est le domaine qui correspondra à n'importe quel nom d'hôte.

Retour 301 https: // $ host $ request_uri - Cela indique à vos moteurs de recherche qui le redirigent en permanence. Il spécifie que l'hôte de la variable $ détient les noms de domaine.

Une fois que vous avez modifié les paramètres de configuration, vous devez recharger les services Nginx sur votre système. Ainsi, rechargez vos services Nginx en utilisant la commande suivante:

$ sudo systemctl recharger nginx

Rediriger HTTP vers la version HTTPS pour un domaine spécifié dans Nginx

Après avoir installé le certificat SSL sur votre domaine, vous aurez deux options de blocs de serveur pour ce domaine. Un bloc est pour la version HTTP à écouter sur le port 80, et la deuxième version est HTTPS sur le port 443. Cependant, pour rediriger un seul domaine de site Web de HTTP vers HTTPS, vous devez ouvrir la configuration Nginx. Vous pouvez localiser ce fichier de configuration dans le répertoire / nginx / nginx / sites. En tout cas, si vous n'avez pas trouvé ce fichier, vous pouvez le rechercher avec / etc / nginx / nginx.Conf, / usr / local / nginx / confue ou / usr / local / etc / nginx, puis effectuez les modifications suivantes dans ce fichier:

serveur
Écoutez 80;
nom de domaine server_name.com www.nom de domaine.com;
retour 301 https: // nom de domaine.com $ request_uri;

Comprenons le code ci-dessus ligne par ligne.
Écouter 80 - À l'aide du port 80, le serveur écoutera toutes les connexions entrantes Domaine spécifié.

Nom de domaine server_name.com www.nom de domaine.com - il spécifie les noms de domaine. Alors, remplacez-le par le nom de domaine de votre site Web que vous souhaitez rediriger.

Retour 301 https: // nom de domaine.com $ request_uri - il déplace le trafic vers la version HTTPS du site. La variable $ request_uri est utilisée pour la demande complète de la demande d'origine dans laquelle les arguments sont également inclus.

En utilisant la méthode suivante, vous pouvez rediriger le trafic vers la version HTTPS www vers la version non-WWW du site. Il est recommandé de créer une redirection dans un bloc de serveur séparé pour les versions non www et www.

Expliquons avec un exemple. Si vous souhaitez rediriger les demandes WWW HTTPS vers la version non-WWW, vous suiveriez la configuration suivante:

serveur
Écoutez 80;
nom de domaine server_name.com www.nom de domaine.com;
retour 301 https: // nom de domaine.com $ request_uri;

serveur
Écoutez 443 SSL HTTP2;
server_name www.nom de domaine.com;
#… Autre code
retour 301 https: // nom de domaine.com $ request_uri;

serveur
Écoutez 443 SSL HTTP2;
nom de domaine server_name.com;
#… Autre code

Remplacez le nom de domaine par votre domaine, comme www.linuxhint.com.

Conclusion

Nous avons discuté de la façon de rediriger le trafic de la version HTTP vers le HTTPS sur le serveur Nginx. En modifiant le paramètre de fichier de configuration Nginx, vous pouvez facilement rediriger le trafic vers HTTPS soit pour un domaine spécifié ou rediriger tous. Cette méthode, que nous avons mentionnée dans cet article, peut vous aider à rendre votre site Web plus sécurisé en apportant des modifications dans l'expérience utilisateur.