Declarando várias portas para os mesmos VirtualHosts

31

Declarar várias portas para os mesmos VirtualHosts:

SSLStrictSNIVHostCheck off
# Apache setup which will listen for and accept SSL connections on port 443.
Listen 443
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:443

<VirtualHost *:443>
  ServerName domain.localhost
  DocumentRoot "/Users/<my_user_name>/Sites/domain/public"
  <Directory "/Users/<my_user_name>/Sites/domain/public">
    Order allow,deny
    Allow from all
  </Directory>

  # SSL Configuration
  SSLEngine on
  ...
</VirtualHost>

Como posso declarar uma nova porta ('listen', ServerName, ...) para 'domain.localhost'?

Se eu adicionar o seguinte código, o apache funciona (demais) também para todos os outros subdomínios de 'domain.localhost' (subdomain1.domain.localhost, subdomain2.domain.localhost, ...):

<VirtualHost *:80>
  ServerName pjtmain.localhost:80
  DocumentRoot "/Users/Toto85/Sites/pjtmain/public"
  RackEnv development
  <Directory "/Users/Toto85/Sites/pjtmain/public">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>
    
por user65567 06.01.2011 / 05:24

1 resposta

54

A pergunta é um tanto ambígua, mas tentarei ajudar.

Se você quiser que o mesmo virtualhost ouça em várias portas, faça o seguinte:

Listen 80
NameVirtualHost *:80

Listen 8080    
NameVirtualHost *:8080

<VirtualHost *:80 *:8080>
  ServerName some.domain.name
  ServerAlias some.other.domain.name
  ....
</VirtualHost>

Em geral, você não define vários VirtualHosts baseados em nomes do mesmo nome de domínio, a menos que você precise usar um protocolo diferente.

Para virtualhosts baseados em nome SSL, você precisa ser extremamente cuidadoso: por definição, não pode haver vários certificados no mesmo IP: Port, portanto, para evitar erros de certificado, ele deve ser um certificado wilcard, cobrindo todo o domínio servido nomes.

    
por 06.01.2011 / 08:19