Fornecendo o roteamento de subdomínio modificando o / etc / hosts (como fazer isso no servidor remoto?)

0

Estou usando um software complicado e mal documentado (sfDomainRoutePlugin ) para fornecer funcionalidade de subdomínio para meu site . Estou usando o Apache como servidor web e executando um Ubuntu 10.0.4 LTS sem servidor no servidor.

Depois de muitos testes e erros, descobri que a única maneira de fazer com que meus links de subdomínio gerados funcionassem (sem receber um erro 'Server Not Found') era codificar os nomes dos subdomínios em meu arquivo / etc / hosts.

Isso funciona bem quando estou testando em localhost - no entanto, quero implantar a solução em um servidor remoto que está executando vários servidores virtuais (sites diferentes). O servidor remoto não faz uso do arquivo / etc / hosts, pois cada site tem um nome exclusivo.

A minha pergunta é a seguinte: posso simplesmente introduzir as entradas de domínio codificadas (juntamente com o endereço IP estático) no ficheiro etc / hosts? ou existe outra maneira de fazer isso?

Minha abordagem proposta seria modificar o arquivo / etc / hosts no servidor remoto da seguinte forma:

123.456.789.123    foo.example.com
123.456.789.123    foo1.example.com
123.456.789.123    foo2-bar.example.com

Onde 123.456.789.123 é o IP estático do servidor remoto.

Esta é a maneira de fazer isso?

Eu ficaria especialmente feliz em ouvir de qualquer meio que tenha conseguido usar o sfDomainRoutePlugin para um propósito similar, em um ambiente de produção.

    
por Homunculus Reticulli 01.10.2011 / 13:45

2 respostas

1

Se todo subdomínio precisar ser veiculado por um site físico, você terá:

  • escreva na zona DNS smth.like

    www IN A endereço IP

    somename IN A outro endereço IP / se necessário /

    • EM CNAME www

os últimos registros serão válidos para todos e quaisquer indefinidos em nomes de zona IP de www como resposta

  • No painel de controle de hospedagem, defina * .domainname como alias para www site

can I simply enter the hardcoded domain entries (along with the static IP address) in the etc/hosts file?

Não. Com hosts, você poderá encaminhar solicitações para corrigir o servidor, mas não poderá processar solicitações sem saber sobre o mapeamento de subdomínios (esses sites não existem para o servidor)

    
por 01.10.2011 / 14:44
1

Como todos os seus domínios / subdomínios estão usando o mesmo endereço IP, não precisamos nos preocupar com proxies reversos. veja abaixo alguns exemplos. Estes são para domínios diferentes, mas funcionam tão bem para os subdomínios. Você não precisa editar seu arquivo de hosts.

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /www/example1
ServerName www.example1.com

# Other directives here

</VirtualHost>

<VirtualHost *:80>
DocumentRoot /www/example2
ServerName www.example2.org

# Other directives here

</VirtualHost> 

Além disso, execute ping em cada um dos seus subdomínios. Se eles não retornarem seu endereço IP estático, você saberá que é um problema de DNS / Registro. Talvez seja necessário examinar novamente a configuração do registro do seu domínio ou aguardar o DNS (geralmente de 15 minutos a uma hora) para ser ativado.

    
por 01.10.2011 / 14:48