Host Virtual Apache2 quebrado; exibiu o index.html padrão no subdomínio, mas o conteúdo correto em www.subdomain

6

Eu tenho um Linode configurado como um servidor web Ubuntu 10.04.2 com Apache 2.2.14.

Eu tenho um total de 4 sites, todos definidos em /etc/apache2/sites-available como hosts virtuais. Todos os sites são clones quase idênticos para configuração. E todos os sites, mas meu último trabalho com sucesso.

default:      (www.)exampleadnetwork.com
              (www.)example.com
          reseller.example.com
trouble:   client1.example.com

Eu continuo recebendo esta página quando visito o client1.example.com site:

It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.

No meu arquivo ports.conf eu tenho o NameVirtualHost corretamente configurado para o meu endereço IP na porta 80.

Se eu acessar o alias "www.sub.example.com", o site funciona! Se eu acessar sem o www eu vejo o trecho "It Works" postado acima. Mesmo apache2ctl -S mostra que meu arquivo vhost analisa corretamente e é adicionado ao mix.

Meu arquivo de configuração vhost é o seguinte:

<VirtualHost 127.0.0.1:80>
    ServerAdmin [email protected]
    ServerName  client1.example.com
    ServerAlias client1.example.com www.client1.example.com
    DocumentRoot    /srv/www/client1.example.com/public_html/
    ErrorLog    /srv/www/client1.example.com/logs/error.log
    CustomLog   /srv/www/client1.example.com/logs/access.log combined

    <directory /srv/www/client1.example.com/public_html/>
        Options -Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </directory>
</VirtualHost>

Os outros sites são variações de:

<VirtualHost 127.0.0.1:80>
    ServerAdmin [email protected]
    ServerName  example.com
    ServerAlias example.com www.example.com
    DocumentRoot    /srv/www/example.com/public_html/
    ErrorLog    /srv/www/example.com/logs/error.log
    CustomLog   /srv/www/example.com/logs/access.log combined
</VirtualHost>

O único site que difere é o outro subdomínio:

<VirtualHost 127.0.0.1:80>
    ServerAdmin [email protected]
    ServerName  reseller.example.com
    ServerAlias reseller.example.com
    DocumentRoot    /srv/www/reseller.example.com/public_html/
    ErrorLog    /srv/www/reseller.example.com/logs/error.log
    CustomLog   /srv/www/reseller.example.com/logs/access.log combined
</VirtualHost>

Nomes de arquivo são o FQDN sem o www. prefixo.

Eu segui este conselho , mas ainda não pode acessar o subdomínio corretamente.

    
por Robert K 18.07.2011 / 22:37

6 respostas

1

Eu experimentei exatamente o mesmo problema e, eventualmente, o que resolveu o problema foi quando desativei o site padrão no apache, desmarcando-o de sites habilitados:

sudo unlink /etc/apache2/sites-enabled/000-default

Depois disso, todos os meus sites são exibidos corretamente. Eu vejo que esta pergunta é bastante antiga, mas espero que isso possa ajudar alguém lá fora.

    
por 13.09.2012 / 15:42
1

As soluções dos outros cartazes farão isso.

Você "trabalha" é mostrado, porque toda sua correspondência do host virtual ao localhost. E se você chamar "client1.example.com" o apache irá ignorar os Vhosts do localhost e se não houver um Vhost correspondente, ele usará a configuração padrão.

Faça o que os outros posters disseram (altere seus hosts vitial para <VirtualHost *:80> de <VirtualHost *> de alterar seu vhost padrão para a raiz do documento que você gosta.

Não se esqueça: mesmo que você defina seus Vhosts corretamente, o servidor chamará o site padrão se alguém solicitar seu servidor sem um nome de host (por exemplo, via endereço IP).

    
por 26.11.2013 / 23:44
0

Experimente sem ter uma entrada duplicada em ServerName e ServerAlias.

Por exemplo:

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName  sub.example.com
ServerAlias www.sub.example.com
DocumentRoot    /srv/www/sub.example.com/public_html/
ErrorLog    /srv/www/sub.example.com/logs/error.log
CustomLog   /srv/www/sub.example.com/logs/access.log combined

<directory /srv/www/sub.example.com/public_html/>
    Options -Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</directory>

    
por 18.07.2011 / 22:51
0

Algumas sugestões:

  • Alterar o <VirtualHost 127.0.0.1:80> para <VirtualHost *:80>
  • Você colocou a configuração NameVirtualHost *:80 ?
  • Coloque um arquivo index.html sob cada DocumentRoot, obviamente, cada um com uma mensagem diferente para identificar onde você está acessando
  • Tente acessar a partir do host local e, se possível, tente em outro local
por 18.07.2011 / 23:40
0

Você verificou a resolução de DNS dos seus sites?

(www.) sub.example.com ambos resolvem para a mesma máquina (mesmo se endereços diferentes)?

Verifique os logs, ambos, para ver se todo o seu acesso está atingindo o servidor correto (configuração) ou se eles estão atingindo o padrão, já que o "Funciona!" é a página padrão da configuração padrão.

Se eles estiverem atingindo o padrão, é necessário identificar por que isso acontece ... quais são as diferenças entre as configurações. Tente alterar o IP, como sugerido anteriormente, já que o Apache irá vincular a configuração ao endereço IP específico indicado na diretiva VirtualHost.

    
por 11.01.2013 / 18:09
0

Suas configurações não estão configuradas corretamente para NameVirualHost . Livre-se do 127.0.0.1 e torne-o um curinga de * . Quando você definir explicitamente 127.0.0.1 , isso vinculará todas as conexões da sua máquina a essa configuração. NameVirualHost precisa de um curinga de * :

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName  client1.example.com
    ServerAlias client1.example.com www.client1.example.com
    DocumentRoot    /srv/www/client1.example.com/public_html/
    ErrorLog    /srv/www/client1.example.com/logs/error.log
    CustomLog   /srv/www/client1.example.com/logs/access.log combined

    <directory /srv/www/client1.example.com/public_html/>
        Options -Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </directory>
</VirtualHost>
The other sites are variations of:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName  example.com
    ServerAlias example.com www.example.com
    DocumentRoot    /srv/www/example.com/public_html/
    ErrorLog    /srv/www/example.com/logs/error.log
    CustomLog   /srv/www/example.com/logs/access.log combined
</VirtualHost>
The only site the differs is the other subdomain:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName  reseller.example.com
    ServerAlias reseller.example.com
    DocumentRoot    /srv/www/reseller.example.com/public_html/
    ErrorLog    /srv/www/reseller.example.com/logs/error.log
    CustomLog   /srv/www/reseller.example.com/logs/access.log combined
</VirtualHost>

Além disso, certifique-se de que NameVirtualHost esteja definido da seguinte forma. Na minha configuração no Ubuntu, você verá essa linha neste arquivo: /etc/apache2/ports.conf

NameVirtualHost *:80
Listen 80
    
por 16.11.2013 / 07:28