Como redireciono www para não-www no Route53?

24

Eu hospedo meu site em domain.com.

Minhas entradas DNS no Route53 são as seguintes:

domain.com      A       xxx.xxx.xxx.xxx      300
domain.com      NS      stuff.awsdns-47.org  172800
domain.com      SOA     stuff.awsdns-47.org  900

Gostaria de redirecionar o tráfego de www.domain.compara domain.com, pois atualmente isso apenas retorna um 404. Esta pergunta no SO sugeriu um PTRregistro e adicionei que:

www.domain.com  PTR     domain.com           300

mas não funcionou. O que devo fazer?

Fredley
fonte
3
Se você realmente deseja enviar um redirecionamento HTTP, não pode fazê-lo dentro do DNS. Se você não se importa com a alteração da URL na barra de endereço, use um CNAME como o pauska sugere. Se você se importa, precisará de algum tipo de servidor Web para enviar o 301. Alguns provedores de DNS têm isso como um serviço, mas não acredito que o Route53 faça isso.
Cjc
@cjc Não me importo com o URL na barra de endereços.
Fredley

Respostas:

22

O PTR é para configurar pesquisas reversas de IP e não é algo com que você deva se preocupar. Remova.

O que você precisa é de um CNAME para www:

www.domain.com  CNAME  domain.com 300
pauska
fonte
15
Este não é um redirecionamento. Caso você precise definir o URL de retorno de chamada em algum tipo de serviço de terceiros, a solução acima não funcionará. Por exemplo, autenticação oAuth (Facebook, Twitter).
CK
14

Você também pode definir um ALIAS para WWW como um registro de domain.com:

www.domain.com A ALIAS domain.com 300

portanto, suas entradas finais de DNS seriam as seguintes:

domain.com          A       xxx.xxx.xxx.xxx      300
domain.com          NS      stuff.awsdns-47.org  172800
domain.com          SOA     stuff.awsdns-47.org  900
www.domain.com      A       ALIAS domain.com (Hosted Zone ID)
Hardeep Singh
fonte
Eu fiz isso no entanto ainda não está funcionando. Mais alguma coisa que possa ser necessária?
Utpal - Ur Best Pal
Depois de adicionar o alias, eu precisava excluir o cache do navegador para que isso funcionasse.
trees_are_great
E isso depende do TTL anterior do seu DNS.
Hardeep Singh
3

Depois de ter um CNAME para example.com e www.example.com, essa configuração do nginx redirecionará o tráfego de http para https, assim como todos os www.example.com para example.com

server { 

    listen  80 ;

    server_name  example.com, www.example.com;

    rewrite ^/(.*) https://example.com/$1 permanent;
}

server {  #  redirect www to normal domain

    listen       443  ssl ;

    server_name www.example.com;

    include /etc/nginx/myprojname/include/ssl;

    return 301 https://example.com$request_uri;
}

server {

    listen  443 ssl ;

    include /etc/nginx/myprojname/include/ssl;

    server_name example.com;

    include /etc/nginx/snippets/nginx_common_location_443;

    location / {

        proxy_pass http://127.0.0.1:3000/;
    }

    include /etc/nginx/myprojname/include/custom_server_include;
}

onde meu servidor atual está ativo e escutando na porta 3000 ... isso também encerra meu TLS, no entanto, basta remover a menção de ssl ... escondido nesses arquivos incluídos, estão as minhas configurações de nginx para proteger a caixa

Scott Stensland
fonte
-1

Como mencionado acima, não é possível com o DNS padrão.

Aqui está a solução que eu usei:

  • Configure o S3 com o site estático redirecionado para seu domínio não www
  • Crie uma distribuição do Cloudfront para o seu S3 (usando o domínio S3, não o sugerido no preenchimento automático pela AWS)
  • Adicionar um alias de registro da rota 53 A à distribuição do CloudFront
natanavra
fonte
@ Thomas veja a resposta editada.
Natanavra