Skip to content

Nginx. Hôtes virtuels en mode expert ​

Cet article prolonge Nginx. Hôtes virtuels en mode constructeur. Si vous configurez votre premier site, commencez par là : la création d’un hôte en mode constructeur couvre la plupart des cas. Venez ici quand vous avez besoin de directives absentes du formulaire : un try_files personnalisé, un proxy, des paramètres FastCGI spécifiques, une limitation de débit. Vous y trouverez comment ouvrir le mode expert, comment passer d’un mode à l’autre sans perdre vos paramètres, le détail du modèle de départ et l’activation manuelle de PHP-FPM.

Quand le mode expert est nécessaire ​

Le mode expert sert quand le formulaire standard ne suffit pas. Cas typiques :

  • un try_files personnalisé, par exemple pour une SPA avec try_files $uri $uri/ /index.html; ou pour WordPress avec try_files $uri $uri/ /index.php?$args; ;
  • des access_log / error_log non standard : format, chemin personnalisés ou journaux désactivés ;
  • un proxy_pass vers un service amont avec un réglage fin des en-têtes et des délais d’attente ;
  • des fastcgi_param supplémentaires en plus du bloc PHP-FPM standard ;
  • limitation de débit, cache, réglages de gzip ;
  • les directives if, map, set.

Pour les sites courants (contenu statique, WordPress sur un stack prêt à l’emploi, proxy inverse élémentaire), le mode expert n’est pas nécessaire. Utilisez le mode constructeur.

Ouvrir le mode expert ​

  1. Dans le menu latéral de la section Nginx, cliquez sur « Créer un hôte virtuel ».
  2. La page de création s’ouvre en mode constructeur. Dans la barre inférieure, cliquez sur « Passer en mode expert ».
  3. La boîte de dialogue « Passer en mode expert » s’affiche. Cliquez sur « Continuer ».
  4. L’éditeur de configuration brute s’ouvre, avec coloration syntaxique et un modèle de départ.
  5. Renseignez le champ « Nom de domaine » au-dessus de l’éditeur : c’est le nom de l’hôte virtuel, sous lequel le panneau enregistre la configuration. Adaptez le modèle à votre site.
  6. Cliquez sur « Créer ».

⚠️ Changer de mode sur la page de création

Pour revenir au mode constructeur, utilisez le bouton « Passer en mode constructeur » dans la même barre inférieure. Sur la page de création, cela fonctionne ainsi :

  • Le premier passage en mode expert ouvre le modèle de départ (voir ci-dessous).
  • Le retour au mode constructeur restaure les champs du formulaire : les valeurs saisies en mode constructeur sont conservées.
  • Un nouveau passage en mode expert ne conserve pas le brouillon intermédiaire et l’écrase avec le même modèle de départ.

Si vous avez modifié la configuration brute en mode expert, êtes passé en mode constructeur, puis êtes revenu, vos modifications sont perdues. Enregistrez la configuration avec « Créer » avant de changer de mode, ou copiez le texte dans un éditeur externe.

Modèle de départ ​

nginx
# This configuration file is automatically generated by BeAdmin.
# You can modify it according to your needs.

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/public;
    index index.php index.html;

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


    access_log /var/log/nginx/example.access.log;
    error_log  /var/log/nginx/example.error.log;
}

Rôle de chaque directive :

  • listen 80; — le port. Pour HTTPS, remplacez-le par 443 ssl; et ajoutez ssl_certificate et ssl_certificate_key. En mode expert, le panneau n’émet pas le certificat automatiquement à l’enregistrement de l’hôte : émettez-le à la main après la création, comme décrit dans l’article Émettre un certificat SSL.
  • server_name example.com www.example.com; — les domaines auxquels le bloc répond. Il est lié au champ « Nom de domaine » au-dessus de l’éditeur (voir ci-dessous).
  • root /var/www/example.com/public; — la racine des fichiers du site. Remplacez example.com par votre domaine. Le répertoire doit exister et être accessible à l’utilisateur nginx, sinon le site répond par une erreur 403 ou 500.
  • index index.php index.html; — les fichiers par défaut pour une requête sur un répertoire. L’ordre compte : pour un site PHP, placez index.php en premier.
  • location / { try_files $uri $uri/ =404; } — le schéma standard : chercher le fichier au chemin exact, puis le répertoire, sinon renvoyer une erreur 404. Pour une SPA, remplacez =404 par /index.html. Pour WordPress, par /index.php?$args.
  • access_log et error_log — les chemins des journaux. Il est pratique de les placer dans /var/log/nginx/<domaine>.access.log et /var/log/nginx/<domaine>.error.log : c’est ainsi que sont configurés les journaux affichés par le module Nginx dans le panneau.

⚠️ Insertion du domaine dans server_name

Quand le champ « Nom de domaine » cesse d’être vide pour la première fois après l’ouverture de l’éditeur sur la page de création, le panneau insère une seule fois dans le server_name du modèle de départ la valeur <domaine> www.<domaine>, par exemple example.com www.example.com. Ensuite, le champ « Nom de domaine » et la ligne server_name ne sont plus synchronisés : gérez server_name à la main dans l’éditeur. Sur la page d’un hôte existant, cette insertion n’a pas lieu.

⚠️ Vérification de server_name à l’enregistrement

Quand vous cliquez sur « Créer » (sur la page d’un hôte existant : « Mettre à jour »), le panneau vérifie que chaque valeur de server_name se termine par ce qui est saisi dans le champ « Nom de domaine ». Si le champ contient example.com, alors example.com, www.example.com et api.example.com sont valides, mais pas api.other.com : l’hôte ne peut pas être enregistré.

Connecter PHP via PHP-FPM ​

Le modèle de départ n’active pas PHP : index.php figure dans la directive index, mais sans gestionnaire pour .php, le serveur renvoie le code source en texte brut. Pour que le site exécute des scripts PHP, il faut un bloc location ~ \.php$ { ... } qui transmet les requêtes à un socket PHP-FPM.

Le module PHP de BeAdmin prend en charge plusieurs versions en parallèle. Chacune crée son propre socket /var/run/php/php<version>-fpm.sock, par exemple php8.3-fpm.sock. Repérez la version d’un site donné dans le module PHP et reportez-la dans fastcgi_pass.

Dans une installation standard via BeAdmin, Nginx provient du dépôt officiel nginx.org. Le fragment /etc/nginx/snippets/fastcgi-php.conf n’y est pas fourni : il n’existe que dans les paquets nginx-full et nginx-extras des dépôts natifs de Debian et d’Ubuntu. Nous recommandons donc d’écrire explicitement les paramètres FastCGI :

nginx
location ~ \.php$ {
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}

Si Nginx est installé sur le serveur à partir des paquets de la distribution et que le fragment standard est présent, vous pouvez l’inclure directement :

nginx
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
}

Enregistrer et appliquer ​

Après le clic sur « Créer » (sur la page d’un hôte existant : « Mettre à jour ») :

  • BeAdmin enregistre la configuration et active l’hôte virtuel.
  • Si les fichiers du site se trouvent déjà dans le répertoire root, le site est disponible immédiatement.
  • Avant l’activation, le panneau vérifie la configuration avec la commande nginx -t. En cas d’erreur de syntaxe ou de directive inconnue, l’hôte n’est pas créé et le panneau affiche la notification « Impossible de créer l’hôte virtuel en raison d’une erreur de configuration. Plus de détails dans les journaux. » Consultez les lignes d’erreur exactes de nginx -t dans les journaux système du module Nginx, corrigez la configuration, puis cliquez de nouveau sur « Créer » (sur la page d’un hôte existant : « Mettre à jour »).

Gérer un hôte existant ​

  • Pour ouvrir la configuration brute d’un hôte existant, cliquez sur « Passer en mode expert » dans la barre inférieure de sa page. Pour revenir, utilisez le bouton « Passer en mode constructeur ».
  • Les configurations des modes sont stockées différemment : celle du mode constructeur est un ensemble structuré de champs de formulaire dans la base de données du panneau, celle du mode expert est un fichier brut sur le disque. Quand vous passez du mode expert au mode constructeur, le panneau enregistre le fichier brut actuel dans une sauvegarde interne, et le mode constructeur affiche son dernier jeu de champs enregistré.
  • Le panneau ne conserve pas de brouillon intermédiaire en mode expert : chaque retour en mode expert recharge la configuration actuelle depuis le serveur. Si vous avez modifié la configuration brute, êtes passé en mode constructeur, puis êtes revenu sans cliquer sur « Mettre à jour », vos modifications sont perdues : l’éditeur ouvre la dernière version enregistrée sur le serveur.
  • Pour supprimer un hôte, utilisez l’icône de corbeille à côté de son nom dans le menu latéral. Le fichier de configuration de l’hôte virtuel et ses journaux sont supprimés ; les fichiers du site dans le répertoire root et les certificats SSL restent sur le serveur.

Pour aller plus loin ​

BeAdmin © 2025. Tous droits réservés.