Host virtual padrão do Apache 2.2 para endereço IP

2

SO: CentOS 6.9. HTTPD versão 2.2

Eu tenho dois endereços IP e uma dúzia de hosts virtuais em um deles. O que eu preciso é poder mudar o que vhost é exibido por padrão quando um visitante abre apenas o endereço IP no navegador.

Atualmente, a única maneira que sei que posso conseguir é substituindo os virtuais e o primeiro funciona como padrão. Eu estou procurando uma solução melhor. Existe um? Eu preciso de algum tipo de diretiva, para que eu possa alternar o host virtual padrão com um script em vez de editar manualmente o httpd.conf.

Eu passei a manhã inteira pesquisando. Encontrou a seguinte informação:

Defina ServerAlias my.2nd.ip.addr - não funcionou para mim.

Defina VirtualHost _default_:80 em vez de VirtualHost my.2nd.ip.addr:80 - não o efeito desejado.

Defina ServerName my.2nd.ip.addr e adicione o domínio como ServerAlias - ainda nada.

Qualquer ajuda seria apreciada.

    
por deimos 26.06.2017 / 09:57

1 resposta

1

Como você sugeriu, "o primeiro vhost" será aberto por padrão ao visitar por endereço IP.

A parte complicada é entender como o Apache decide qual é o "primeiro"; na verdade, ele classifica os vhosts ativos / habilitados por nome_do_arquivo e o nome do arquivo inferior / primeiro em uma classificação crescente, que corresponde a um vhost usando esse endereço IP, e é selecionado como "primeiro". / p>

Portanto, não importa o nome do vhost, se você nomear um arquivo como 0.conf ou 0actualvhostname.conf para o primeiro endereço IP e, por exemplo, 1.conf para o segundo endereço IP, esses arquivos "vencerão" e ser usado como vhosts padrão para ser aberto quando o servidor for procurado por endereço IP.

Esta também é a razão pela qual, no Debian, por exemplo, o arquivo de configuração padrão do Apache vhost é chamado 000-default.conf .

Você também precisa reiniciar o Apache após a alteração do nome do arquivo vhost; como em:

sudo apache2ctl -k graceful
    
por 26.06.2017 / 10:44