Android

Redirigez http vers https dans nginx

Haproxy - 5. Premier loadbalancer : frontend et backend

Haproxy - 5. Premier loadbalancer : frontend et backend

Table des matières:

Anonim

Dans ce guide, nous expliquerons comment rediriger le trafic HTTP vers HTTPS dans Nginx.

Nginx prononcé «moteur x» est un serveur HTTP et proxy inverse gratuit, open source et hautes performances chargé de gérer la charge de certains des plus grands sites sur Internet.

Contrairement à HTTP, où les demandes et les réponses sont envoyées et renvoyées en texte brut, HTTPS utilise TLS / SSL pour crypter la communication entre le client et le serveur.

Il y a de nombreux avantages à utiliser HTTPS sur HTTP, tels que:

  • Toutes les données sont cryptées dans les deux sens. Par conséquent, les informations sensibles ne peuvent pas être lues si elles sont interceptées.Google Chrome et tous les autres navigateurs populaires marqueront votre site Web comme sûr.HTTPS vous permet d'utiliser le protocole HTTP / 2, ce qui améliore considérablement les performances du site.Google favorise les sites Web HTTPS. Votre site se classera mieux s'il est servi via

La méthode préférée pour rediriger HTTP vers HTTPS dans Nginx est de configurer un bloc serveur distinct pour chaque version du site. Vous devez éviter de rediriger le trafic à l'aide de la directive if, car cela peut entraîner un comportement imprévisible du serveur.

Rediriger HTTP vers HTTPS par site

Pour rediriger un seul site Web vers HTTPS, ouvrez le fichier de configuration du domaine et apportez les modifications suivantes:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; }

Décomposons le code ligne par ligne:

  • listen 80 - Le bloc serveur écoute les connexions entrantes sur le port 80 pour le domaine spécifié. server_name linuxize.com www.linuxize.com - Spécifie les noms de domaine du bloc serveur. Assurez-vous de le remplacer par votre nom de domaine. return 301 - Redirige le trafic vers la version HTTPS du site. La variable $request_uri est l'URI complet de la demande d'origine, y compris les arguments.

En règle générale, vous souhaiterez également rediriger la version HTTPS www du site vers la version non www ou vice versa. La méthode recommandée pour effectuer la redirection consiste à créer un bloc serveur distinct pour les versions www et non www.

Par exemple, pour rediriger les demandes www HTTPS vers des sites non www, vous utiliseriez la configuration suivante:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name www.linuxize.com; #… other code return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name linuxize.com; #… other code }

Rediriger tous les sites vers HTTPS

Si tous les sites Web hébergés sur le serveur sont configurés pour utiliser HTTPS et que vous ne souhaitez pas créer un bloc de serveur HTTP distinct pour chaque site, vous pouvez créer un seul bloc de serveur HTTP fourre-tout. Ce bloc redirigera toutes les requêtes HTTP vers les blocs HTTPS appropriés.

Pour créer un seul bloc HTTP fourre-tout qui redirigera les visiteurs vers la version HTTPS du site, ouvrez le fichier de configuration Nginx et apportez les modifications suivantes:

server { listen 80 default_server; listen:80 default_server; server_name _; return 301 https://$host$request_uri; }

Analysons le code ligne par ligne:

  • listen 80 default_server - Définit ce bloc serveur comme bloc par défaut (fourre-tout) pour tous les domaines sans correspondance. server_name _ - _ est un nom de domaine non valide qui ne correspond à aucun nom de domaine réel. return 301 - Redirige le trafic vers le bloc serveur HTTPS correspondant avec le code d'état 301 (Déplacé en permanence). La variable $host contient le nom de domaine de la demande.

Par exemple, si le visiteur ouvre http://example.com/page2 dans le navigateur, Nginx redirigera la demande vers https://example.com/page2 .

Si possible, préférez créer une redirection par domaine au lieu d'une redirection globale HTTP vers

Conclusion

Une fois qu'un certificat SSL est installé sur votre site Web, vous devez rediriger le trafic HTTP vers

Dans Nginx, la façon préférée de rediriger HTTP vers HTTPS est de créer un bloc serveur distinct et d'effectuer une redirection 301.

nginx