Pergunta sobre forwarding, amazon-route53, dns – Configurar encaminhamento de URL baseado em DNS no Amazon Route53 [fechado]

125

Estou tentando configurar o encaminhamento no Amazon Route53. Meu último serviço de DNS (Nettica) me permitiu encaminhar solicitações para "aws.example.com" para "https://myaccount.signin.aws.amazon.com/console/".

Esta funcionalidade é suportada pelo Route53?

Como a Nettica consegue isso? Ele insere registros A, CNAME, PTR ou TXT especiais?

Criar uma distribuição do Cloudfront com o URL como a origem também funciona. Basta apontar o domínio para a distribuição do Cloudfront a partir do Route53 e certifique-se de configurar os certificados TLS corretamente. Deiwin

Sua resposta

5   a resposta
9
Atualizar

il para entender a causa de o encaminhamento de URL baseado em DNS não estar disponível por meio deAmazon Route 53 fora da caixa, eu recomendo verificar Vivek M. Chawlasolução indireta totalmente inteligente através do introduzido entretantoSuporte do Amazon S3 para redirecionamentos de sites e alcançar um servidor independente menos e, portanto, livre na AWS apenas como tal.

A implementação de uma solução automatizada para gerar esses redirecionamentos é deixada como um exercício para o leitor, mas, por favor, preste homenagem à resposta épica de Vivek publicando sua solução;)Resposta Original

A Nettica deve estar executando uma solução de redirecionamento personalizada para isso, eis o problema:

Você pode criar um alias de CNAME comoaws.example.com paramyaccount.signin.aws.amazon.com, no entanto, o DNS não fornece suporte oficial para o aliasing de um subdiretório comoconsole neste exemplo.

É uma pena que a AWS não pareça simplesmente fazer isso por padrão ao baterhttps://myaccount.signin.aws.amazon.com/ (Eu apenas tentei), porque isso resolveria seu problema imediatamente e faria muito sentido em primeiro lugar; Além disso, deve ser muito fácil de configurar no seu final.

Por esse motivo, alguns provedores de DNS aparentemente implementaram uma solução personalizada para permitir redirecionamentos para subdiretórios; Eu acho que eles estão basicamente facilitando um apelido CNAME para um domínio próprio e estão redirecionando novamente de lá para o destino final através de umRedirecionamento HTTP 3xx.

Portanto, para obter o mesmo resultado, você precisaria ter um serviço HTTP executando esses redirecionamentos, o que não é a solução simples que se espera, é claro. Talvez / Espero que alguém possa chegar a uma abordagem mais inteligente ainda.

Você está no local. Isso é exatamente o que estava acontecendo. Saurav
@ejain - você está correto, claro, eu consertei isso (deve ter perdido a notificação naquela época); obrigado por apontar este fraseado potencialmente enganoso! Steffen Opel
CNAMEs são aliases e não redirecionam. ejain
301

mas eu realmente precisava encontrar uma solução que não exigisse nada além do Route 53 e do S3. Eu criei um guia prático para o meu blog detalhando o que eu fiz.

Aqui está o que eu criei.

Objetivo

Usando apenas as ferramentas disponíveis no Amazon S3 e Amazon Route 53, crie um redirecionamento de URL que encaminha automaticamentehttp://url-redirect-example.vivekmchawla.com na página de entrada do AWS Console com alias para "MyAccount", localizada emhttps://myaccount.signin.aws.amazon.com/console/ .

Este guia ensinará a configurar o encaminhamento de URL para qualquer URL, não apenas para os da Amazon. Você aprenderá a configurar o encaminhamento para pastas específicas (como "/ console" no meu exemplo) e como alterar o protocolo do redirecionamento de HTTP para HTTPS (ou vice-versa).

Primeiro Passo: Crie Seu Balde S3

Abra o console de gerenciamento do S3 e clique em "Criar Bucket".

Segundo Passo: Nomeie Seu Balde S3

Escolha um nome de balde. Este passo é muito importante! Você deve nomear exatamente o mesmo intervalo que o URL que deseja configurar para encaminhamento. Para este guia, usarei o nome "url-redirect-example.vivekmchawla.com".

Selecione qualquer região que funcione melhor para você. Se você não sabe, mantenha o padrão.

Não se preocupe em configurar o registro. Basta clicar no botão "Criar" quando estiver pronto.

Etapa 3: habilite a hospedagem de sites estáticos e especifique regras de roteamento

Na janela de propriedades, abra as configurações de "Hospedagem de site estático".Selecione a opção "Ativar hospedagem de sites".Digite um valor para o "Documento de Índice". Este objeto (documento) nunca será servido pelo S3, e você nunca precisará carregá-lo. Basta usar qualquer nome que você quiser.Abra as configurações de "Editar Regras de Redirecionamento".

Cole o seguinte snippet XML em sua totalidade.

<code><RoutingRules>
  <RoutingRule>
    <Redirect>
      <Protocol>https</Protocol>
      <HostName>myaccount.signin.aws.amazon.com</HostName>
      <ReplaceKeyPrefixWith>console/</ReplaceKeyPrefixWith>
      <HttpRedirectCode>301</HttpRedirectCode>
    </Redirect>
  </RoutingRule>
</RoutingRules>
</code>

Se você está curioso sobre o que o XML acima está fazendo, visite oDocumentação do AWM para "Sintaxe para especificar regras de roteamento". Uma técnica de bônus (não coberta aqui) está sendo encaminhada para páginas específicas no host de destino, por exemplohttp://redirect-destination.com/console/special-page.html. Leia sobre o<ReplaceKeyWith> elemento se você precisar dessa funcionalidade.

Etapa 4: anote o "endpoint" do seu bucket de redirecionamento

Anote o "ponto de extremidade" do site de hospedagem estática que a Amazon criou automaticamente para esse intervalo. Você precisará disso para mais tarde, então destaque o URL inteiro, copie e cole no bloco de notas.

CUIDADO! Nesse ponto, você pode clicar nesse link para verificar se as regras de redirecionamento foram inseridas corretamente, mas tenha cuidado! Aqui está o porquê...

Digamos que você tenha inserido o valor errado dentro do<Hostname> tags nas suas Regras de Redirecionamento. Talvez você tenha digitado acidentalmentemyaccount.amazon.com, ao invés demyaccount.signin.aws.amazon.com. Se você clicar no link para testar o URL do terminal, a AWS redirecionará o seu navegador para o endereço errado!

Depois de perceber o seu erro, você provavelmente irá editar o<Hostname> nas suas Regras de Redirecionamento para corrigir o erro. Infelizmente, quando você tenta clicar no link novamente, você provavelmente será redirecionado para o endereço errado! Mesmo que você tenha consertado<Hostname> entrada, seu navegador está armazenando em cache a entrada anterior (incorreta!). Isso acontece porque estamos usando um redirecionamento HTTP 301 (permanente), que navegadores como o Chrome e o Firefox armazenam por padrão.

Se você copiar e colar o URL do ponto de extremidade em um navegador diferente (ou limpar o cache no seu atual), você terá outra chance de ver se a sua atualização<Hostname> a entrada é finalmente a correta.

Por segurança, se você quiser testar seu URL de ponto de extremidade e as regras de redirecionamento, deverá abrir uma sessão de navegação privada, como "Modo de navegação anônima" no Chrome. Copie, cole e teste o URL do ponto de extremidade no modo anônimo e tudo o que for armazenado em cache desaparecerá assim que você fechar a sessão.

Etapa 5: Abra o console de gerenciamento Route53 e vá para os conjuntos de registros para sua zona hospedada (nome de domínio)

Selecione a Zona Hospedada (nome de domínio) que você usou quando criou seu bucket. Desde que eu nomeei meu bucket "url-redirect-example.vivekmchawla.com", selecionarei a zona hospedada vivekmchawla.com.Clique no botão "Ir para conjuntos de registros".Etapa 6: Clique no botão "Criar conjunto de registros"

Clicar em "Criar conjunto de registros" abrirá a janela Criar conjunto de registros no lado direito do console de gerenciamento Route53.

Etapa 7: criar um conjunto de registros CNAME

No campo Nome, insira a parte do nome do host da URL que você usou ao nomear seu bloco S3. A "parte do nome do host" da URL é tudo à esquerda do nome da sua zona hospedada. Eu nomeei meu bucket S3 como "url-redirect-example.vivekmchawla.com" e minha Hosted Zone é "vivekmchawla.com", então a parte do nome do host que eu preciso digitar é "url-redirect-example".

Selecione "CNAME - nome canônico" para o tipo deste conjunto de registros.

Para o valor, cole no URL do ponto final do intervalo S3 que criamos no passo 3.

Clique no botão "Criar conjunto de registros". Supondo que não haja erros, você poderá ver um novo registro CNAME na lista de Conjuntos de Registros da sua Zona Hospedada.

Etapa 8: testar seu novo redirecionamento de URL

Abra uma nova guia do navegador e digite o URL que acabamos de configurar. Para mim, isso éhttp://url-redirect-example.vivekmchawla.com. Se tudo funcionou corretamente, você deve ser enviado diretamente para uma página de login da AWS.

Porque nós usamos omyaccount.signin.aws.amazon.com alias como o URL de destino do nosso redirecionamento, a Amazon sabe exatamente qual conta estamos tentando acessar e nos leva diretamente para lá. Isso pode ser muito útil se você quiser fornecer um link de login da AWS, de marca curta e limpa, para funcionários ou contratados.

Conclusões

Eu pessoalmente adoro os vários serviços da AWS, mas se você decidiu migrar o gerenciamento de DNS para o Amazon Route 53, a falta de encaminhamento de URL fácil pode ser frustrante. Espero que este guia tenha facilitado a configuração do encaminhamento de URL para suas zonas hospedadas.

Se você quiser saber mais, confira as páginas a seguir no site de documentação da AWS.

Exemplo: Configurando um site estático usando um domínio personalizadoConfigurar um bucket para hospedagem de sitesCriando um domínio que usa o Route 53Criando, alterando e excluindo registros de recursos

Felicidades!

Ah, a clareza! Obrigado! Will
Obrigado, Steffen! Eu aprecio o feedback! Esta foi a minha primeira resposta StackOverflow. Você pode imaginar como fiquei surpreso com o fato de que, depois de escrever tudo isso, eu não consegui postá-lo porque não tinha representante suficiente para postar uma resposta com mais de duas imagens! Hehehe ... ahh, memórias. :-) Vivek M. Chawla
@mlissner parece tão elaborado para algo que deveria ser tão simples. Andy Hayden
@Slake dei uma olhada e você está certo, você pode ir diretamente com o "Redirecionar todas as solicitações ..." opção. Tendo dito isso, acho que a resposta como atualmente escrita dá aos leitores a oportunidade de aprender sobre alguns recursos estendidos, então eu prefiro manter essa resposta como está. Obrigado! Vivek M. Chawla
11

ina de login do aws.

Vá para sua pasta nginx conf (no meu caso é/etc/nginx/sites-available em que eu crio um symlink para/etc/nginx/sites-enabled para os arquivos conf ativados).

Em seguida, adicione um caminho de redirecionamento

<code>server {
  listen 80;
  server_name aws.example.com;
  return 301 https://myaccount.signin.aws.amazon.com/console;
}
</code>

Se você estiver usando o nginx, provavelmente terá blocos de servidores adicionais (virtualhosts na terminologia do apache) para manipular o seu apex de zona (example.com) ou como você o instalou. Certifique-se de que você tenha um deles configurado para ser seu servidor padrão.

<code>server {
  listen 80 default_server;
  server_name example.com;
  # rest of config ...
}
</code>

Na rota 53, adicione umA record paraaws.example.com e defina o valor para o mesmo IP usado para o seu apex de zona.

Melhor ainda seria usar um registro Alias ​​para apontar para o balanceador de carga elástico na frente dessa máquina. maletor
0

criar um intervalo vazioRedirect all requests to another host name em hospedagem na Web estática em propriedades por meio do console. Certifique-se de ter definido 2 registros A na rota53, um parafinal-destination.com e um pararedirect-to.final-destination.com. As configurações de cada uma delas serão idênticas, mas o nome será diferente, de forma que corresponda aos nomes que você definiu para seus blocos / URLs.

121

ma ideia proposta pelo @Vivek M. Chawla, com uma implementação mais simples.

AWS S3:

Crie um bucket chamado com seu domínio completo, comoaws.example.comNas propriedades do intervalo, selecioneRedirect all requests to another host name e insira seu URL:https://myaccount.signin.aws.amazon.com/console/

AWS Route53:

Criar um tipo de conjunto de registros A. Alterar alias paraYes. Clique emAlias Target Selecione o campo S3 que você criou na etapa anterior.

Referência:Como redirecionar domínios usando o Amazon Web Services

Documentação oficial da AWS:Existe uma maneira de redirecionar um domínio para outro domínio usando o Amazon Route 53?

A documentação oficial está aqui:aws.amazon.com/premiumsupport/knowledge-center/… Mario Olivio Flores
Eu não vejo meus baldes no Route53. Não consigo selecioná-los na lista. Quanto tempo leva Route53 para ver que há um novo intervalo na minha conta? Pawel
Eu não recomendaria dessa maneira, pois os resultados são armazenados em cache e o tempo de atualização leva um tempo. Além disso, apenas os domínios serão suportados. Lorenz Lo Sauer
@Pawel você deve ver o balde imediatamente. Certifique-se de que o nome do intervalo seja exaclty o mesmo que o domínio route53 completo. Por exemplo, se você estiver criando um registro de Alias ​​A com o nome "mysubdomain", seu nome de intervalo deverá ser "mysubdomain.domain.com". Roberto Schneiders

Perguntas relacionadas