apache2 ServerAlias mostrando comportamento estranho

1

Estou tentando configurar dois sites em um único servidor apache2. um o site principal e o outro é um servidor de nuvem

o primeiro é definido em 000-default.conf:

<VirtualHost *:80>

ServerName www.example.com
ServerAlias example.com

ServerAdmin webmaster@localhost

DocumentRoot /var/www-sites/main/

<Directory  /var/www-sites/main/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
    Require all granted
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

<Directory "/usr/lib/cgi-bin">                                                                       
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

O segundo está em 100-cloud.conf

<VirtualHost *:80>

DocumentRoot /var/www-sites/OwnCloud
ServerName cloud.example.com
ServerAlias www.cloud.example.com

ServerAdmin webmaster@localhost



<Directory  /var/www-sites/OwnCloud>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
    Require all granted
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

<Directory "/usr/lib/cgi-bin">                                                                       
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

ServerSignature On

Agora aqui está o estranho:

neste exemplo, o www.cloud.example.com goos para o site padrão (example.com) e não para cloud.example.com

se eu mudar o nome do primeiro arquivo conf para zzz-default.conf, o www.example.com goos para o cloud.example.com

também se eu alterar os arquivos para que ele seja:

ServerName www.cloud.example.com
ServerAlias cloud.example.com

cloud.example será direcionado para o padrão como se o ServerAlias NÃO estivesse funcionando

o que estou fazendo errado? no meu outro servidor isso funciona muito bem.

obrigado

informação extra: a saída de apachectl -S  é:

VirtualHost configuration:
*:80                   is a NameVirtualHost
     default server www.example.com (/etc/apache2/sites-enabled/000-default.conf:1)
     port 80 namevhost www.example.com (/etc/apache2/sites-enabled/000-default.conf:1)
             alias example.com
     port 80 namevhost sys.example.com (/etc/apache2/sites-enabled/000-default.conf:50)
     port 80 namevhost cloud.example.com (/etc/apache2/sites-enabled/100-cloud.conf:1)
             alias www.cloud.example.com
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl 
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
Define: ENABLE_USR_LIB_CGI_BIN
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
    
por K.Mooijman 28.10.2014 / 23:11

1 resposta

0

Eu suspeito que você não tenha uma diretiva NameVirtualHost , porque você descreve que o primeiro VirtualHost assume o segundo. Pode ser que você possa obter mais informações executando apachectl -S . Adicione a saída desses comandos ao seu post, se não for a diretiva NameVirtualHost que está faltando.

    
por 30.10.2014 / 00:11