Subdomínio curinga (* .example.com) com o DNS e S3 do Amazon Route53

8

Estou hospedando um site estático usando o Amazon Route53 para DNS e S3 para arquivos html. Está funcionando bem.

A configuração atual é:

example.com.  A   ALIAS s3-website-us-east-1.amazonaws.com. 
www.example.com. CNAME www.example.com.s3-website-us-east-1.amazonaws.com

(OBSERVAÇÃO: example.com e www.example.com são depósitos do S3. Meus arquivos HTML residem no bucket example.com.)

Agora eu quero adicionar um subdomínio curinga como este - isso é o que eu tentei:

*.example.com. CNAME  www.example.com.s3-website-us-east-1.amazonaws.com

A ideia é ter qualquer coisa.exemplo.com para resolver corretamente o site. Mas isso não parece estar funcionando. Então, quando eu vou ao site: joker.example.com eu vejo a mensagem de erro no navegador:

Code: NoSuchBucket
Message: The specified bucket does not exist
BucketName: joker.example.com
    
por Jasper 15.03.2014 / 17:01

3 respostas

9

A resposta do @ edvinas.me está correta. Você deve criar uma distribuição em nuvem para o seu intervalo.

Ao criar a distribuição cloudfront, defina a opção Nomes de domínio alternativos como * .example.com.

Em seguida, use o URL do cloudfront como d3lt3rsz2leycm.cloudfront.net.

Agora você pode adicionar um subdomínio curinga como este:

*.example.com. CNAME  3lt3rsz2leycm.cloudfront.net.    

E deve funcionar.

    
por 17.12.2014 / 16:09
1

Seu bucket do S3 está configurado para aceitar somente solicitações para example.com (e / ou www.example.com). Você não pode configurar seu bloco para aceitar ou qualquer subdomínio específico que deseja estar ativo.

A única maneira de conseguir isso é usar um serviço externo como o link da Cloudfront que procuraria as solicitações.

A resposta de Michael (sqlbot) parece cobrir isso com mais detalhes.

    
por 15.03.2014 / 18:13
0

Amazon S3 uses the host name to determine the bucket name.

http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html

O nome do host é a minúscula do valor enviado pelo navegador no cabeçalho Host: . Não há como configurar um intervalo para responder a vários nomes de host.

Existem algumas maneiras indiretas para fazer isso, dependendo do que você está tentando fazer, mas vai exigir uma instância do EC2 executando o HAProxy, Varnish, Apache ou algo semelhante, para responder a solicitações de nomes de host com caracteres curinga. um redirecionamento para reescrever a barra de endereço do navegador para o nome do host / bucket real ou para enviar os cabeçalhos de solicitação e proxy para S3, o que não é tão ineficiente quanto possa parecer, já que não há taxas de transferência de dados entre S3 e EC2 dentro da mesma região, e a latência é baixa.

    
por 16.03.2014 / 13:16