Publier sa première page sur un VPS

3 min de lecture07 novembre 2026

Un VPS nu ne sert aucune page : il faut un serveur web, un fichier et un port ouvert. Nginx est un choix courant sur Debian, léger et simple à configurer. L'objectif de ce guide est une page statique réellement joignable par l'adresse IPv6 et, si vous en avez une, par l'adresse IPv4, sans passer par un nom de domaine.

Installer Nginx

Bash
sudo apt update
sudo apt install -y nginx
sudo systemctl status nginx

Le paquet démarre le service et active son lancement au boot. systemctl status nginx doit afficher active (running). Si le service échoue, lisez journalctl -u nginx avant de modifier la configuration.

Créer la page et la racine

Bash
sudo mkdir -p /var/www/votre-domaine.fr
sudo chown -R www-data:www-data /var/www/votre-domaine.fr
sudo chmod 755 /var/www/votre-domaine.fr

Créez ensuite /var/www/votre-domaine.fr/index.html avec un contenu minimal, puis ajustez les droits du fichier en 644. N'utilisez jamais chmod 777 : le serveur web n'a besoin que de lire. Le propriétaire www-data permet à Nginx de servir les fichiers sans les rendre modifiables par tous.

Déclarer le site

Créez /etc/nginx/sites-available/votre-domaine.fr :

Nginx
server {
    listen 80;
    listen [::]:80;
    server_name votre-domaine.fr www.votre-domaine.fr;

    root /var/www/votre-domaine.fr;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Activez-le avec un lien symbolique, puis validez avant de recharger :

Bash
sudo ln -s /etc/nginx/sites-available/votre-domaine.fr /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

nginx -t doit répondre syntax is ok et test is successful. Un rechargement échoue proprement sans couper le service existant ; un redémarrage coupe les connexions en cours.

Ouvrir le port 80

Bash
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status verbose

Autorisez SSH avant d'activer UFW, sinon vous perdez l'accès distant. Les règles doivent apparaître en IPv4 et en IPv6. Si un autre pare-feu est actif, adaptez la commande plutôt que d'empiler deux systèmes.

Tester en IPv6 et IPv4

Bash
curl -I http://[VOTRE_IPV6]/
curl -4 -I http://VOTRE_IPV4/

Les crochets sont obligatoires dans une URL IPv6. Les deux requêtes doivent renvoyer HTTP/1.1 200 OK. Si l'IPv6 répond et l'IPv4 non, vérifiez l'adresse et le pare-feu. Depuis un navigateur, utilisez la page test IPv6 pour confirmer le chemin réseau. Une page accessible par IP mais pas par nom indique un problème DNS, pas un problème Nginx.

Dépannage rapide

  • La page par défaut de Nginx reste affichée : vérifiez que le lien symbolique existe dans sites-enabled et que server_name correspond au nom utilisé, puis rechargez Nginx.
  • Erreur 403 : les droits ou le propriétaire de la racine ne permettent pas la lecture. Repassez le dossier en 755 et le fichier en 644.
  • Connexion refusée : le port 80 n'est pas ouvert dans le pare-feu, ou Nginx n'écoute pas. Contrôlez ss -lntp | grep :80 et ufw status.
  • La page répond en local mais pas depuis Internet : testez l'adresse IPv6 dans le navigateur et vérifiez que le service écoute aussi sur [::]:80.

Publicité

Cet article vous a-t-il aidé ?

À lire aussi