DNS incorreto, subdomínios inexistentes apontam para o site principal

1

Antes de começar, gostaria de dizer que já li perguntas relevantes aqui no serverfault, mas não consegui encontrar uma solução.

Aqui está o meu problema. Estou usando um DNS de terceiros e adicionei um registro curinga * .biglle.com que aponta para o endereço IP do meu servidor. O problema que estou tendo com isso é que todo sub-domínio não existente aponta para o biglle.com (aqueles que existem funcionam bem). Gostaria de observar que a configuração do site do apache para o biglle.com não é a padrão (000-default.conf), mas sim uma separada (biglle.com.conf). Isso é o que eu não consigo entender. Os subdomínios inexistentes devem apontar para o arquivo de configuração padrão, não deveriam?

Aqui faz parte do biglle.com.conf

<VirtualHost 192.168.1.54:80>
SuexecUserGroup "#1003" "#1004"
ServerName biglle.com
ServerAlias www.biglle.com
ServerAlias webmail.biglle.com
ServerAlias admin.biglle.com
DocumentRoot /home/biglle/public_html
ErrorLog /var/log/virtualmin/biglle.com_error_log
CustomLog /var/log/virtualmin/biglle.com_access_log combined
ScriptAlias /cgi-bin/ /home/biglle/cgi-bin/
ScriptAlias /awstats/ /home/biglle/cgi-bin/
DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory /home/biglle/public_html>
Options -Indexes +IncludesNOEXEC +FollowSymLinks +ExecCGI
allow from all
AllowOverride All
AddHandler fcgid-script .php
AddHandler fcgid-script .php5
FCGIWrapper /home/biglle/fcgi-bin/php5.fcgi .php
FCGIWrapper /home/biglle/fcgi-bin/php5.fcgi .php5
</Directory>
<Directory /home/biglle/cgi-bin>
allow from all
</Directory>
RewriteEngine on
RewriteCond %{HTTP_HOST} =webmail.biglle.com
RewriteRule ^(.*) https://biglle.com:20000/ [R]
RewriteCond %{HTTP_HOST} =admin.biglle.com
RewriteRule ^(.*) https://biglle.com:10000/ [R]
RemoveHandler .php
RemoveHandler .php5
IPCCommTimeout 31
FcgidMaxRequestLen 1073741824
<Files awstats.pl>
AuthName "biglle.com statistics"
AuthType Basic
AuthUserFile /home/biglle/.awstats-htpasswd
require valid-user
</Files>
Alias /dav /home/biglle/public_html
Alias /pipermail /var/lib/mailman/archives/public
<Location /dav>
DAV on
AuthType Basic
AuthName "biglle.com"
AuthUserFile /home/biglle/etc/dav.digest.passwd
Require valid-user
ForceType text/plain
Satisfy All
RemoveHandler .php
RemoveHandler .php5
RewriteEngine off
</Location>
RedirectMatch /cgi-bin/mailman/([^/\.]*)(.cgi)?(.*) https://biglle.com:10000/virtualmin-mailman/unauthenticated/$1.cgi$3
RedirectMatch /mailman/([^/\.]*)(.cgi)?(.*) https://biglle.com:10000/virtualmin-mailman/unauthenticated/$1.cgi$3
php_value memory_limit 32M
</VirtualHost>

Atualmente estou usando um hack de php que verifica se o nome do domínio tem um arquivo .conf respectivo em / etc / apache2 / sites-enabled / e, se não, exibe um erro 404, mas obviamente não é permanente solução. Além disso, esse hack apenas funciona para a página de índice de cada subdomínio.

Por não ter mais do que 10 representantes, não posso postar exemplos aqui. Você pode vê-los nesta pasta aqui: link

EDIT: saída apache2ctl -S

root@biglle:/# apache2ctl -S
[Sun May 27 22:00:11 2012] [warn] NameVirtualHost 91.132.57.179:80 has no VirtualHosts
VirtualHost configuration:
192.168.1.54:80        is a NameVirtualHost
         default server biglle.com (/etc/apache2/sites-enabled/biglle.com.conf:1)
         port 80 namevhost biglle.com (/etc/apache2/sites-enabled/biglle.com.conf:1)
         port 80 namevhost fwnh.biglle.com (/etc/apache2/sites-enabled/fwnh.biglle.com.conf:1)
         port 80 namevhost itemlist.biglle.com (/etc/apache2/sites-enabled/itemlist.biglle.com.conf:1)
         port 80 namevhost lithisdoma.gr (/etc/apache2/sites-enabled/lithisdoma.gr.conf:1)
         port 80 namevhost think.biglle.com (/etc/apache2/sites-enabled/think.biglle.com.conf:1)
         port 80 namevhost topirouni.biglle.com (/etc/apache2/sites-enabled/topirouni.biglle.com.conf:1)
         port 80 namevhost videos.biglle.com (/etc/apache2/sites-enabled/videos.biglle.com.conf:1)
192.168.1.54:443       is a NameVirtualHost
         default server biglle.com (/etc/apache2/sites-enabled/biglle.com.conf:58)
         port 443 namevhost biglle.com (/etc/apache2/sites-enabled/biglle.com.conf:58)
wildcard NameVirtualHosts and _default_ servers:
*:80                   biglle.com (/etc/apache2/sites-enabled/000-default:1)
Syntax OK
    
por Constantine Loukas 27.05.2012 / 20:45

2 respostas

4

O Apache procurará pelo VirtualHosts na seguinte ordem:

  1. VirtualHost definido pela primeira vez com IP, porta e nome do servidor correspondentes
  2. VirtualHost definido pela primeira vez com IP e porta correspondentes
  3. VirtualHost definido pela primeira vez com porta de correspondência e IP curinga (ou _default_ )

Estou assumindo que o servidor tem apenas um endereço IP, ou seja, 192.168.1.54.

192.168.1.54:80        is a NameVirtualHost
    default server biglle.com (/etc/apache2/sites-enabled/biglle.com.conf:1)
wildcard NameVirtualHosts and _default_ servers:
    *:80                   biglle.com (/etc/apache2/sites-enabled/000-default:1)

As solicitações de entrada em 192.168.1.54:80 que não correspondem a um ServerName, portanto, usarão o biglle.com VirtualHost definido em biglle.com.conf (porque esse é o primeiro VirtualHost que corresponde ao IP e à porta). O biglle.com VirtualHost em 000-default será usado apenas para solicitações recebidas em um IP diferente de 192.168.1.54.

A menos que você esteja realmente realizando hospedagem virtual baseada em IP, sugiro que altere todos os seus VirtualHosts para não especificar um endereço IP (ou seja, <VirtualHost *:80> ) e verifique se aquele que deseja ser o padrão é listado primeiro na configuração (que o arquivo 000-default deve fazer).

    
por 27.05.2012 / 22:30
0

Dicas adicionais:

  1. Em alguns navegadores (por exemplo, google chrome), você só poderá navegar e ver os resultados das alterações de configuração do apache depois de reiniciar o navegador.
  2. Pesquise diretivas de redirecionamento nos arquivos de configuração - elas também podem causar um problema.

Amnon

    
por 20.12.2012 / 18:38