Configuração correta de hosts virtuais no Apache?

1

Eu tenho um problema para descobrir a configuração correta para os hosts virtuais do Apache2 no servidor Centos6. Eu tenho uma instalação limpa do Centos6 com o apache2 (httpd) instalado e, por padrão, há / var / www / html , / var / www / icons , / var / www / errors e pastas de conteúdo / var / www / cgi-bin definidas que são configuradas em /etc/httpd/conf/httpd.conf .

Eu tenho 2 domínios a.com e b.com configurados, para os quais criei pastas de documentos /var/www/a.com e /var/www/b.com , e no /etc/httpd/conf/httpd.conf eu configurei o NameVirtualHost

NameVirtualHost *:80

e adicionou hosts virtuais correspondentes para a.com e b.com como

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName  a.com
    ServerAlias www.a.com
    DocumentRoot /var/www/a.com
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory "/var/www/a.com">
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>
</VirtualHost>

Ambos os domínios a.com e b.com estão funcionando bem e eu posso acessá-los com ou sem www subdomínio, mas estou confuso o que devo fazer com a configuração padrão do httpd e as pastas de conteúdo padrão? Eu não parece ser capaz de acessar o site padrão em / var / www / html mesmo ao chamar o servidor com endereço IP simples (pedido é direcionado para a.com virtual hospedeiro). Eu também tentei configurar o nome do host do servidor como c.com e definir o

ServerName c.com:80

Mas, mesmo assim, a solicitação para c.com está sendo redirecionada para o host virtual a.com .

Eu não preciso das pastas de conteúdo padrão criadas pelo apache, então eu devo apenas remover o / var / www / html , / var / www / icons , / var / www / errors e pastas / var / www / cgi-bin e definições correspondentes em /etc/httpd/conf/httpd.conf que é

DocumentRoot "/var/www/html"
<Directory "/var/www/html" ... />
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons" ... />
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin" ... />
Alias /error/ "/var/www/error/"
<Directory "/var/www/error" ... />

Ou como o host padrão deve ser configurado e acessado quando os hosts virtuais são configurados no mesmo servidor?

    
por jperala 23.07.2014 / 13:24

1 resposta

0

Quando você usa a hospedagem virtual baseada em nome, o primeiro <VirtualHost> se torna o host padrão, que também responde a todas as solicitações que não correspondem aos nomes de domínio declarados nas diretivas ServerName ou ServerAlias dos outros hospedeiro.

Do manual :

Main host goes away
If you are adding virtual hosts to an existing web server, you must also create a <VirtualHost> block for the existing host. The ServerName and DocumentRoot included in this virtual host should be the same as the global ServerName and DocumentRoot. List this virtual host first in the configuration file so that it will act as the default host.

    
por 23.07.2014 / 13:38