GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rediriger HTTP vers HTTPS dans Nginx

Présentation

Nginx (prononcez « Engine-X ») est un serveur Web et une application proxy basés sur Linux. Nginx est un outil puissant pour rediriger et gérer le trafic Web. Il peut être facilement configuré pour rediriger le trafic Web HTTP non chiffré vers un serveur HTTPS chiffré.

Ce guide vous montrera comment rediriger HTTP vers HTTPS à l'aide de Nginx.

Prérequis

  • Un serveur Linux exécutant Nginx
  • Un compte utilisateur avec sudo privilèges
  • Connexion à distance à un serveur Web (facultatif, requis uniquement si vous ne travaillez pas directement sur votre serveur Web)
  • Accès à un terminal/ligne de commande (Ctrl-Alt-T ou Ctrl-Alt-F2)

Redirection HTTP vers HTTPS

Pour appliquer une redirection HTTP vers HTTPS, vous devez modifier le fichier de configuration Nginx.

Dans la plupart des cas, vous pouvez localiser le fichier dans le dossier /etc/nginx/sites-available annuaire. S'il n'est pas trouvé, recherchez-le ici :/etc/nginx/nginx.conf, /usr/local/nginx/conf , ou /usr/local/etc/nginx .

Une fois que vous avez localisé le fichier de configuration Nginx, ouvrez-le dans un éditeur de texte avec la commande :

sudo nano /etc/nginx/sites-available/server.conf

Remplacez l'emplacement par l'emplacement réel et le nom de votre fichier de configuration.

Une fois le fichier de configuration ouvert pour modification, insérez l'un des blocs de code ci-dessous. Une fois que vous avez terminé l'édition, enregistrez le fichier et quittez. Ensuite, redémarrez le service Nginx avec la commande suivante :

sudo service nginx restart

Nginx redirige tout le trafic HTTP vers HTTPS

Ouvrez le fichier de configuration Nginx pour le modifier, puis insérez le code suivant :

server {

    listen 80 default_server;


    server_name _;


    return 301 https://$host$request_uri;

}

Voici une répartition des commandes :

  • Listen 80  :Cela indique au système d'intercepter tout le trafic HTTP sur le port 80
  • Server_name _;  :Cela correspondra à n'importe quel nom d'hôte
  • Return 301  :Cela indique au navigateur (et aux moteurs de recherche) qu'il s'agit d'une redirection permanente
  • https://$host$request_uri  :Il s'agit d'un code court pour spécifier la version HTTPS de tout ce que l'utilisateur a tapé

Après modification, tout le trafic du serveur HTTP par défaut est redirigé vers HTTPS.

Redirection vers un site spécifique

Vous pouvez avoir plusieurs serveurs, mais seuls certains d'entre eux peuvent nécessiter HTTPS. Spécifiez le nom du serveur dans le bloc du serveur pour rediriger le trafic sélectionné :

server {

    listen 80 default_server;


    server_name my_app.com;


    return 301 https://my_app.com$request_uri;

}

Remplacez le nom my_app.com avec le nom du serveur que vous avez l'intention de rediriger. Vous pouvez également ajouter des sites supplémentaires en ajoutant un autre bloc de serveur. Copiez simplement le code et changez le nom du serveur.

Accepter uniquement les connexions SSL

Ajoutez ce code pour vous assurer que le serveur n'acceptera que les connexions SSL sur le port 443 :

server {

    listen 443 ssl default_server;

    server_name my_app.com;

}


server {

    listen 443 ssl;

    server_name my_website.com;

}

Ce bloc de code définira deux sites Web, my_app.com et mon_siteweb.com , pour n'accepter que les connexions SSL. Vous pouvez ajouter des sites supplémentaires en utilisant des blocs de serveur supplémentaires.

Redirections de pages Nginx

Vous pouvez utiliser le code de réécriture pour gérer rapidement une redirection 301 (permanente) ou 302 (temporaire) :

Location /index.html {

       rewrite ^/oldURL$ https://www.your_domain.com/newURL redirect;

}

La plupart du temps, l'emplacement sera index.html , mais vous pouvez spécifier n'importe quel chemin/modèle.

Notez que la rewrite La commande ne doit être utilisée qu'avec des redirections 301 ou 302.

Comment rediriger un domaine avec Nginx

Ceci est utile si vous êtes passé d'une extension personnalisée (comme .biz ou .net) à une adresse .com standard. Il peut également être utilisé pour rediriger d'un ancien nom de domaine vers un nouveau nom de domaine.

server {

    listen 80;

    listen 443 ssl;

    server_name www.old_company.com;

    return 301 $scheme://www.new_company.com$request_uri;

}

Dans la plupart des cas, le return est préférée à la commande de réécriture.

Redirection d'un site Web www vers un site Web non www

Ce processus est similaire à une redirection de page standard :

server {

    server_name www.new_company.com;

    return 301 $scheme://new_company.com$request_uri;

}

Raisons pour rediriger le trafic

Il existe plusieurs raisons de rediriger le trafic HTTP vers HTTPS. Vous devrez peut-être :

  • Forcer une connexion chiffrée plus sécurisée
  • Conservez une page avec un bon classement SEO, mais envoyez son trafic vers une nouvelle page.
  • Notifier et rediriger temporairement le trafic vers une page "en maintenance".
  • Renvoi permanent du trafic d'un site Web à un autre, c'est-à-dire après une fusion d'entreprise

Linux
  1. Comment utiliser Nginx pour rediriger

  2. Comment installer le serveur HTTP Git avec Nginx sur Ubuntu 16.04

  3. Comment installer le serveur HTTP Git avec Nginx sur Ubuntu 20.04

  4. Comment installer le serveur HTTP Git avec Nginx sur Debian 11

  5. Redirection HTTP vers HTTPS dans NginX

Comment installer Nginx dans Debian 7

Comment installer Nginx sur Fedora 22

Comment installer NGINX sur Ubuntu 20.04

Comment installer Nginx sur CentOS 7

Comment configurer NGINX sur un serveur CentOS 7

Comment configurer Nginx comme équilibreur de charge pour Apache ou Tomcat pour HTTP/HTTPS