Nginx Rediriger HTTP vers HTTPS

Nginx Redirect Http Https



Nginx, prononcé sous le nom de Engine x, est un site Web hautes performances gratuit et open source basé sur Linux et un serveur proxy inverse chargé de gérer et de gérer la charge du plus grand trafic de sites Web sur Internet. Nginx est un outil de redirection puissant 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 allons travailler sur la façon de rediriger le trafic Web de HTTP vers un HTTPS sécurisé dans Nginx.







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



  • Toutes les données entre le client-serveur dans les deux sens sont cryptées. Cependant, personne ne peut accéder aux informations sensibles si elles sont interceptées.
  • Lorsque vous utilisez HTTPS, Google Chrome et d'autres navigateurs considéreront le domaine de votre 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érable de rediriger le trafic HTTP vers HTTPS dans Nginx dans un bloc de serveur distinct pour chaque version du site. Il est également recommandé d'éviter de rediriger le trafic en utilisant la direction if, ce qui peut entraîner un comportement inhabituel du serveur.



Rediriger 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 vers la version HTTPS :





serveur {
Ecoutez 80serveur_défaut;
nom du serveur _;
revenir 301https : //$hôte$request_uri;
}

Ci-dessous, nous avons élaboré chacun des termes mentionnés ci-dessus :

Listen 80 default_server - cela signalera à votre système qu'il capte 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 de manière permanente. Il précise que la variable $host contient 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. Alors, rechargez vos services Nginx en utilisant la commande suivante :

$sudosystemctl recharger nginx

Rediriger HTTP vers la version HTTPS pour le 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 écoutant 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 /etc/nginx/sites-available. Dans tous les cas, si vous n'avez pas trouvé ce fichier, vous pouvez le rechercher avec /etc/nginx/nginx.conf, /usr/local/nginx/conf ou /usr/local/etc/nginx, puis effectuer le modifications suivantes dans ce fichier :

serveur {
Ecoutez 80;
nom du serveur nom-domaine.com www.nom-domaine.com;
revenir 301https://nom-domaine.com$request_uri;
}

Comprenons le code ci-dessus ligne par ligne.
Écouter 80 - en utilisant le port 80, le serveur écoutera toutes les connexions entrantes du domaine spécifié.

Server_name domain-name.com www.domain-name.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://domain-name.com$request_uri - il déplace le trafic vers la version HTTPS du site. La variable $request_uri est utilisée pour l'URI de requête d'origine complet dans lequel 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 requêtes HTTPS www vers la version non-www, vous devez suivre la configuration suivante :

serveur {
Ecoutez 80;
nom du serveur nom-domaine.com www.nom-domaine.com;
revenir 301https://nom-domaine.com$request_uri;
}
serveur {
Ecoutez 443 SSL http2;
nom du serveur www.nom-de-domaine.com;
# . . . autre code
revenir 301https://nom-domaine.com$request_uri;
}
serveur {
Ecoutez 443 SSL http2;
nom du serveur nom-domaine.com;

# . . . autre code
}

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

Conclusion

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