Par défaut, virtualhost Apache est FQDN

J’ai installé un VirtualHost sur mon système Apache qui porte le même nom que le nom de domaine complet du serveur. C’est le nom de domaine complet:

root@mail:/etc/apache2/sites-available# hostname -f mail.example.com 

Ceci est le contenu des fichiers .conf:

 000-default.conf:  ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined  example.com.conf:  ServerName mail.example.com DocumentRoot /home/example/public_html  

Maintenant, je m’attendrais à ce que mail.example.com corresponde à VirtualHost et, par conséquent, utilise DocumentRoot / home / example / public_html. Ce ne est pas.

Exécuter apache2ctl -S génère:

 *:80 is a NameVirtualHost default server mail.example.com (/etc/apache2/sites-enabled/000-default.conf:1) port 80 namevhost mail.example.com (/etc/apache2/sites-enabled/000-default.conf:1) port 80 namevhost mail.example.com (/etc/apache2/sites-enabled/abcarrental.nl.conf:1) 

Ainsi, le serveur par défaut est mail.example.com et, par conséquent, DocumentRoot est / var / www / html.

Choisir un autre nom de VirtualHost (par exemple webmail.example.com) et changer le VirtualHostName en webmail.example.com résout le problème.

J’ai parcouru les pages du manuel Apache NamedVirtualHost et je ne trouve aucune explication. Explication seulement que si un nom ne correspond à aucun des hôtes, le paramètre par défaut est utilisé. Mais rien de ce qui est par défaut n’est utilisé si le FQDM est égal au nom demandé.

Est-ce que ce comportement est conçu?

Oui, il est conçu lorsque vous omettez un nom de serveur à partir d’un VirtualHost initialisé à partir du nom d’hôte local du système ou, à défaut, à la recherche DNS inversée de toute adresse IP locale.

Cette configuration est malheureusement effectuée par l’hôte virtuel par défaut créé par les paquets debian / ubuntu.

Avec le recul, il est préférable de définir un ServerName complètement fictif dans un hôte virtuel tout-en-un (répertorié en premier).