VirtualHost não é considerado como a melhor correspondência

1

Eu tenho um arquivo chamado pga-default.conf que parece,

<VirtualHost *:8008>
    ServerName 192.168.1.10

    DocumentRoot /var/www/portals/default/public

    <Directory "/var/www/portals/default/public">
       AllowOverride All
    </Directory>
    ErrorLog /var/log/httpd/default.error.log
    CustomLog /var/log/httpd/default.requests.log combined
</VirtualHost>

O problema é sempre que tento usar o link , ele sempre carrega a página padrão do Apache Testing. default.conf parece,

Listen 8008
<VirtualHost _default_:8008>
    DocumentRoot "/www/default"
</VirtualHost>

Mas quando eu altero o <VirtualHost *:8008> para <VirtualHost 192.168.1.10:8008> em pga-default.conf ele funciona como esperado. Eu quero saber porque é isso. Tanto quanto eu sei, isso é porque o servidor não escolhe o VirtualHost como a melhor correspondência para o endereço IP específico e porta. (Esta resposta confirma que diferença entre _default_: * e *: * no contexto do VirtualHost )

Eu tentei vários outros métodos também, mas nenhum deles funcionou, exceto o método acima mencionado. A seguir estão os outros métodos. (Mudanças para pga-default.conf )

  • Alterar ServerName 192.168.1.10 para ServerName 192.168.1.10:8008
  • Usado ServerAlias 192.168.1.10

Nota - Com a configuração acima, <VirtualHost *:8008> , alguns dos meus colegas receberam resultados bem-sucedidos. Esse problema ocorreu apenas para mim.

O que eu perdi aqui? Como é que os outros obtêm os resultados esperados enquanto não estou?

    
por Lahiru Jayathilake 13.03.2018 / 07:21

1 resposta

1

Você sempre deve definir o ServerName em cada host virtual.

Como provavelmente o seu "padrão" é carregado primeiro e não possui um nome de servidor específico, ele está pegando todos os pedidos. Você pode tentar isso facilmente definindo "ServerName default" no virtualhost padrão.

Então, quando você solicitar " link ", você acessará o virtualhost apropriado.

Portanto, lembre-se de que a melhor prática é sempre definir uma única diretiva NomeDoServidor em cada host virtual e considerar quando nenhum nome de host solicitado corresponde aos virtuais do primeiro host virtual, se você acidentalmente definir o mesmo nome de servidor em dois virtualhosts carregado pela primeira vez virtualhost terá o pedido.

    
por 13.03.2018 / 13:32