Precedência ao definir hosts virtuais disponíveis para sites

2

O Linode sugere definir cada host virtual em um arquivo separado em /etc/apache2/sites-available (no Ubuntu) e, em seguida, ativar cada site usando a2ensite . Eu estou vindo de um VPS onde todos os meus hosts virtuais são definidos em um arquivo httpd.conf e tentando converter as coisas para o formato recomendado.

Uma das coisas que configurei é um subdomínio curinga para o meu site principal, que depois é mapeado para o espaço do usuário. No entanto, também tenho subdomínios estáticos. Tenho a impressão de que os subdomínios estáticos precisam viver acima do caractere curinga na minha configuração, portanto, se um dos subdomínios estáticos for acessado, o apache usa o host virtual correto em vez de exibir o caractere curinga.

Se isso for verdade, como a precedência pode ser definida se estiver usando um arquivo por site? Ou preciso ficar apenas em um arquivo de site e colocar todos os subdomínios no mesmo arquivo que o host virtual principal?

    
por Daniel Vandersluis 12.02.2010 / 00:22

3 respostas

1

Além de ser um pouco mais gerenciável e mais fácil de ativar / desativar vhosts, não há motivo para precisar para manter essa estrutura (/ etc / apache2 / sites-available / conf_file) Se preferir para manter tudo no mesmo arquivo, então continue fazendo isso.

    
por 12.02.2010 / 00:30
7

O Apache processa o conteúdo dos subdiretórios de configuração na ordem de classificação alfanumérica (chamada corretamente de sequência de intercalação local, mas o Apache não usa essa terminologia).

Portanto, use nomes de arquivos para definir o pedido. Você pode prefixo ou sufixo todos os nomes de arquivos, ou apenas alguns deles, inventar nomes que classificam corretamente ou qualquer outra coisa que flutua o seu barco, desde que classifiquem corretamente. No entanto, eu pessoalmente prefiro usar prefixos porque está absolutamente claro o que você está fazendo.

    
por 12.02.2010 / 02:46
2

Com essa estrutura de arquivos, você mantém os arquivos em /etc/apache2/sites-available e a2ensite apenas vinculem esses arquivos em /etc/apache2/sites-enabled .

Se você quiser definir precedência, verifique se os arquivos em sites-enabled estão classificados de acordo com sua preferência. Exemplo:

$ ls -l /etc/apache2/sites-enabled/
00default -> ../sites-available/default
01siteA.com -> ../sites-available/siteA.com
02siteB.com -> ../sites-available/siteB.com
99siteZ.com -> ../sites-available/siteZ.com
    
por 12.02.2010 / 02:09