Publié par Un commentaire

Remplacer apache par nginx sans coupure sur debian.

image_pdfimage_print

Bonjour a tous.

J’ai récemment troqué mon apache2 pour un nginx sur la machine virtuelle qui héberge mon blog.

Sans plus attendre,on commence le topo de la migration :

Prérequis

  • Une machine sous debian
  • Avoir suffisamment d’espace disque disponible
  • Avoir les droits root sur votre machine

1 – Installation de nginx et de php-fpm

Cette étape est la plus simple du tuto,on installe nginx :

sudo apt install nginx

A la fin de l’installation de nginx, il va vous mettre un message d’erreur comme quoi il ne peut pas démarrer,c’est tout à fait normal,nous verrons comment résoudre ce problème plus tard.

Et l’implémentation FastCGI de PHP qui est compatible nginx

sudo apt install php-fpm

(je vous conseille d’utiliser ce dépot sur votre Debian pour installer PHP)

2 – Configuration provisoire de nginx

  • Ouvrez le fichier /etc/nginx/sites-available/default.
  • Modifiez le port d’écoute 80 par le port 800 (en début de fichier)
  • Modfiez le paramètre root pour définir le même rootdir que celui d’apache
  • Ajoutez index.php à la directive index
  • Ajoutez  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
    juste après index

Maintenant,vous pouvez allumer le service nginx

sudo systemctl start nginx

2 – Création d’un vhost

Nous allons créer un vhost pour votre site

Le code exemple que j’utilise :
server {
listen 80;
server_name domain.tld;
location '/.well-known/acme-challenge' {
default_type "text/plain";
root /tmp/letsencrypt-auto/;
}
location / {
return 301 https://domain.tld$request_uri;
}
}

Pour une documentation complète et en francais sur la création d’un virtualhost et de sa configuration, je vous renvoie sur ce wiki

3 – Basculement apache – nginx

Une fois que vos virtuals hosts sont bien configurés, il faut effectuer le basculement entre apache et nginx.

Pour un basculement quasiment sans coupure,suivez ces étapes :

  • Changer le port d’écoute 800 pour le remettre sur 80
  • Lancez sudo systemctl stop apache2 pour stopper le service apache
  • Lancez sudo systemctl restart nginx pour redémarrer le service nginx (et appliquer la modification de port)
  • Lancez sudo apt purge apache2 pour supprimer apache de votre système (les vhosts seront conservés dans /etc/apache2)

4 – Retour d’expérience

Il n’y a pas grand chose à  dire de mon coté, mais j’ai été agréablement surpris de la facilité de configuration d’un certificat HTTPS sur nginx par rapport à toutes mes galères avec apache.

Merci d’avoir suivi ce tuto et à bientôt.

Merci a gotronic qui m’a envoyé des composants électroniques pour me soutenir.

 

Une réflexion au sujet de « Remplacer apache par nginx sans coupure sur debian. »

  1. Wow, lovely site. Thnx …

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Entrez Captcha ici : *

Reload Image