O primeiro habilitado será o padrão então renomeie o arquivo de configuração do vhost padrão para algo como 00-config_file_name
, então é o primeiro carregado.
Como você (com razão) gostaria de algo documentado:
A partir de documentos do Apache: Uma discussão aprofundada sobre a correspondência de host virtual
Name-based vhost
If the entry corresponds to a name-based vhost the name list contains one or more vhost structures. This list contains the vhosts in the same order as the VirtualHost directives appear in the config file.
The first vhost on this list (the first vhost in the config file with the specified IP address) has the highest priority and catches any request to an unknown server name or a request without a Host: header field.
If the client provided a Host: header field the list is searched for a matching vhost and the first hit on a ServerName or ServerAlias is taken and the request is served from that vhost. A Host: header field can contain a port number, but Apache always matches against the real port to which the client sent the request.
Portanto, se você usar apenas 1 arquivo de configuração para seus vhosts, será necessário encomendá-los no arquivo e incluir vários arquivos separados (incluindo o diretório ../sites-enabled, que é o modo como o site de amostra Apache2 está definido) precisa carregar os arquivos na ordem que você precisa para definir o site padrão primeiro e eles são carregados de acordo com a ordem alfabética do diretório.
Sempre de acordo com o mesmo documento do Apache (link de exemplos a seguir na página), se você usar _default_
vhost, ele deve ser definido antes de outros vhosts e é exatamente o que você fará definindo o vhost na ordem desejada mas ao usar _default_
vhost, o servidor principal não responderá mais às solicitações.