Maison  >  Article  >  Opération et maintenance  >  Comment Nginx redirige HTTP vers HTTPS

Comment Nginx redirige HTTP vers HTTPS

WBOY
WBOYavant
2023-05-13 09:52:133243parcourir

Nginx est un outil de redirection puissant qui peut être facilement configuré pour rediriger le trafic Web HTTP non sécurisé ou non chiffré vers des serveurs Web HTTPS chiffrés et sécurisés sur votre système.

Nginx, prononcé "Engine x", est un serveur Web et proxy inverse gratuit, open source, hautes performances, basé sur Linux, 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 facilement configuré pour rediriger le trafic Web HTTP non sécurisé ou non chiffré vers des serveurs Web HTTPS chiffrés et sécurisés sur votre système. Si vous êtes un administrateur système ou un développeur, vous devez utiliser fréquemment le serveur Nginx.

Dans cet article, nous verrons comment rediriger le trafic Web de HTTP vers HTTPS sécurisé dans Nginx. Les en-têtes de message HTTP sont transmis au format de chaîne de texte clair, tandis que HTTPS utilise SSL/TLS pour crypter la communication entre les systèmes client et serveur. Par conséquent, HTTPS devrait remplacer HTTP pour de nombreuses raisons :

1. Toutes les données dans les deux sens entre client-serveur sont cryptées. Cependant, en cas d'interception, personne ne peut accéder aux informations sensibles.

2. Lorsque vous utilisez HTTPS, Google Chrome et d'autres navigateurs considéreront le domaine de votre site Web comme sécurisé.

3. La version HTTPS améliore les performances de votre site Web spécifié en utilisant le protocole HTTP/2.

4. Si vous diffusez le domaine de votre site Web via HTTPS, le site Web sera mieux classé sur Google car il favorise tous les sites Web protégés par HTTPS.

5. Il est préférable de rediriger le trafic dans Nginx HTTP vers HTTPS 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 pourrait entraîner un comportement erratique du serveur.

Rediriger tout le trafic de HTTP vers HTTPS

Ajoutez les modifications suivantes au fichier de configuration Nginx pour rediriger tout le trafic de HTTP vers HTTPS Version :

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

Ci-dessous, nous détaillons chacun des termes ci-dessus :

  1. Écoutez 80 default_server – Cela demandera à votre système de capturer tout le trafic HTTP sur le port 80


  2. Server_name _ – $request_uri – Cela indique à vos moteurs de recherche de le rediriger de manière permanente. Il spécifie la variable $host pour contenir le nom de domaine.


  3. Après avoir modifié les paramètres de configuration, le service Nginx doit être rechargé sur le système. Alors, rechargez le service Nginx en utilisant la commande suivante :

    $ sudo systemctl reload nginx
  4. Rediriger HTTP vers HTTPS pour un domaine spécifié dans Nginx

Après avoir installé le certificat SSL sur votre domaine, vous disposerez de deux serveurs pour ce domaine Options de blocage. Un bloc est destiné à la version HTTP écoutant sur le port 80 et la deuxième version est destinée à l'écoute HTTPS sur le port 443. Cependant, pour rediriger un domaine de site Web de HTTP vers HTTPS, vous devez ouvrir la configuration Nginx. Vous pouvez trouver ce fichier de configuration dans le répertoire /etc/nginx/sites-available. Si vous ne trouvez pas ce fichier, vous pouvez le rechercher /etc/nginx/nginx./usr/local/nginx/conf ou /usr/local/etc/nginx puis effectuer les modifications suivantes dans ce fichier :

server { 
    listen 80; 
    server_name linuxmi.com www.linuxmi.com; 
    return 301 https://linuxmi.com$request_uri; 
}
Parcourons le code ci-dessus ligne par ligne.

Écouter 80 - En utilisant le port 80, le serveur écoutera toutes les connexions entrantes pour le nom de domaine spécifié.

  1. Server_name linuxmi.com www.linuxmi.com – Il spécifie le nom de domaine. Remplacez-le donc par le nom de domaine du site Web que vous souhaitez rediriger.


  2. Return 301 https://linuxmi.com$request_uri – Déplacer le trafic vers la version HTTPS du site.


  3. La variable $request_uri concerne l'URI complet de la demande d'origine, qui contient également des paramètres.


  4. En utilisant la méthode suivante, vous pouvez rediriger le trafic de la version HTTPS www vers la version non-www de votre site. Pour les versions non-www et www, il est recommandé de créer des redirections dans des blocs de serveur séparés. Expliquons avec un exemple. Si vous souhaitez rediriger les requêtes www HTTPS vers une version non-www, vous devez suivre la configuration suivante :

    server { 
        listen 80; 
        server_name linuxmi.com www.linuxmi.com; 
        return 301 https://linuxmi.com$request_uri; 
    } 
    server { 
        listen 443 ssl http2; 
        server_name www.linuxmi.com; 
        # . . . other code 
        return 301 https://linuxmi.com$request_uri; 
    } 
    server { 
        listen 443 ssl http2; 
        server_name linuxmi.com; 
     
        # . . . other code 
    }
  5. Remplacez le nom de domaine par votre nom de domaine, par exemple www.linuxmi.com.

    En modifiant les paramètres du fichier de configuration Nginx, vous pouvez facilement rediriger des noms de domaine spécifiques ou tous vers HTTPS. La méthode que nous avons mentionnée dans cet article peut rendre votre site Web plus sécurisé en modifiant l'expérience utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer