Por que o Apache responde a cada subdomínio, mesmo que apenas um vhost seja definido?

0

Eu tenho o Apache2 com um VirtualHost configurado da seguinte forma:

NameVirtualHost *:80
<VirtualHost *:80>
  ServerName gitlab.mydomain.com
  DocumentRoot /home/git/gitlab/public
  ProxyPass / http://127.0.0.1:9292/
  ProxyPassReverse / http://127.0.0.1:9292/

  ErrorLog  /var/log/apache2/gitlab/error.log
  CustomLog /var/log/apache2/gitlab/access.log combined
</VirtualHost>

Funciona para o link . MAS também funciona para todos *. mydomain.com redirecionando para o VirtualHost definido acima.

Como posso desativar todos os hosts além do gitlab.mydomain.com , para que abc.mydomain.com responda com link ?

Atualização:

É possível fazer a mesma coisa com o 443? Eu já tenho um bad_url:

NameVirtualHost *:80
<VirtualHost *:80>
   DocumentRoot /var/www/bad_url
   ServerName *
</VirtualHost>

NameVirtualHost *:443
<VirtualHost *:443>
   DocumentRoot /var/www/bad_url
   ServerName *
</VirtualHost>

Agora recebo um erro ao iniciar o Apache:

Action 'start' failed.
The Apache error log may have more information.
 failed!

cat /var/log/apache2/error.log

[Wed Jul 31 03:09:05 2013] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile] ((null):0)

Eu vejo a Dica, mas é possível sem adicionar o certificado SSL?

    
por static 31.07.2013 / 04:19

1 resposta

2

Tente capturar tudo o que aponta para uma pasta http e tem um arquivo index.html simples que diz que não foi encontrado nenhum servidor aqui ou algo assim.

Além disso, se você estiver atendendo o gitlab, talvez queira colocar isso por trás do SSL.

NameVirtualHost *:80
<VirtualHost *:80>
   DocumentRoot /var/www/bad_url
    ServerName *
</VirtualHost>

<VirtualHost *:80>
  ServerName gitlab.mydomain.com
  DocumentRoot /home/git/gitlab/public
  ProxyPass / http://127.0.0.1:9292/
  ProxyPassReverse / http://127.0.0.1:9292/

  ErrorLog  /var/log/apache2/gitlab/error.log
  CustomLog /var/log/apache2/gitlab/access.log combined
</VirtualHost>

EDITAR:

O seu SSL não está funcionando corretamente porque você provavelmente não tem o módulo SSLEngine instalado / ligado e não faz referência a um Certificado SSL. Aqui está um exemplo em minhas 443 conexões.

   SSLEngine on
   SSLProtocol all -SSLv2
   SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM

   SSLCertificateFile /var/certs/cert.crt
   SSLCertificateKeyFile /var/certs/cert.key
   SSLCertificateChainFile /var/certs/gd_bundle.crt
    
por 31.07.2013 / 04:32