Usando o Route 53 com o DNS público e os hosts virtuais do EC2

2

Gostaria que os subdomínios do URL público da minha instância do EC2 apontassem para árvores de documentos diferentes na minha máquina, por isso foo.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com tem um DocumentRoot a bar.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com

separado

Minha instância do AWS EC2 tem um IP elástico e um URL público padrão da Amazon:

http://ec2-012-345-678-901.eu-west-1.compute.amazonaws.com

Eu posso visitar esse URL e ver minha página de teste do Hello World.

Eu configurei dois VirtualHosts.

<VirtualHost *:80>
  DocumentRoot /var/www/foo/public
  ServerName foo.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com
  ServerAlias ec2-012-345-678-901.eu-west-1.compute.amazonaws.com
</VirtualHost>
<VirtualHost *:80>
  DocumentRoot /var/www/bar/public
  ServerName bar.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com
</VirtualHost>

No AWS Route 53, configurei uma zona hospedada com o nome de domínio ec2-012-345-678-901.eu-west-1.compute.amazonaws.com

Nos conjuntos de registros, adicionei dois registros CNAME:

1)

  • Nome: foo.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com
  • TTL: 60
  • Valor: ec2-012-345-678-901.eu-west-1.compute.amazonaws.com
  • Política de roteamento: simples
  • Alias: não

2)

  • Nome: bar.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com
  • TTL: 60
  • Valor: ec2-012-345-678-901.eu-west-1.compute.amazonaws.com
  • Política de roteamento: simples
  • Alias: não

Meu navegador não consegue encontrar nenhum dos URLs definidos nos hosts virtuais. Eu estou usando usando OpenDNS, mas eu posso SSH em algumas outras máquinas e tente curl e wget e sempre receber o erro "Nome ou serviço desconhecido" ou "não foi possível resolver o host".

Eu tenho brincado com essas configurações um pouco hoje, mas lembro que é exatamente assim que eu as configurei 24 horas atrás.

O que preciso fazer para que meus hosts virtuais sejam resolvidos para os diretórios que defini?

Nota: Estou no RHEL, com o SELinux ativado. Eu não acho que seja relevante, mas já foi a causa de alguns problemas.

Felicidades,

    
por Andrew Martin 27.11.2012 / 18:09

2 respostas

2

Você precisa definir ServerName do Apache para o host virtual como o nome do host real que deseja veicular, como foo.example.com , e NÃO o nome do host interno do EC2 (embora você possa usar ServerAlias para isso se queria que fosse acessível).

Infelizmente, você não pode usar seu nome de host EC2 como um domínio dentro do Route 53; você tem que usar seu próprio nome de domínio.

    
por 27.11.2012 / 18:12
1

I would like subdomains of my EC2 Instance Public URL to point to different document trees in on my machine so foo.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com has a separate DocumentRoot to bar.ec2-012-345-678-901.eu-west-1.compute.amazonaws.com

Acabei de verificar algumas das minhas instâncias e a Amazon não cria um URL público de instâncias.

ec2-012-345-678-901.eu-west-1.compute.amazonaws.com funcionará, mas * .ec2-012-345-678-901.eu-west-1.compute.amazonaws. com não.

In AWS Route 53 I've set up a hosted zone with the domain name ec2-012-345-678-901.eu-west-1.compute.amazonaws.com

Isso não funcionará também. Você pode configurar todos os registros que você gosta, mas ninguém vai vê-los, já que a Amazon não está delegando o subdomínio à sua zona Route53.

    
por 27.11.2012 / 18:29