web-dev-qa-db-fra.com

Comment rediriger www vers non-www dans Route53?

J'héberge mon site à domain.com.

Mes entrées DNS dans Route53 sont les suivantes:

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

Je souhaite rediriger le trafic depuis www.domain.com à domain.com, car actuellement cela renvoie juste un 404. Cette question sur SO a suggéré un enregistrement PTR, et j'ai ajouté que:

www.domain.com  PTR     domain.com           300

mais ça n'a pas marché. Que dois-je faire?

25
fredley

Le PTR sert à configurer des recherches IP inversées, et ce n'est pas quelque chose dont vous devriez vous soucier. Retirez-le.

Ce dont vous avez besoin est un CNAME pour www:

www.domain.com  CNAME  domain.com 300
23
pauska

Vous pouvez également définir un ALIAS pour WWW sur un enregistrement de domain.com:

www.domain.com A ALIAS domain.com 300

de sorte que vos entrées DNS finales seraient les suivantes:

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)
14
Hardeep Singh

Une fois que vous avez un CNAME pour example.com et www.example.com, cette configuration nginx redirigera le trafic de http vers https ainsi que tout www.example.com vers 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;
}

où mon serveur réel est en place et écoute sur le port 3000 ... cela met également fin à mon TLS mais supprimez simplement la mention de ssl ... caché dans ces fichiers inclus sont mes paramètres nginx pour durcir la boîte

3
Scott Stensland

Comme mentionné ci-dessus, ce n'est pas possible avec le DNS standard.

Voici la solution que j'ai utilisée:

  • Configurer S3 avec une redirection de site Web statique vers votre domaine non www
  • Créez une distribution Cloudfront vers votre S3 (en utilisant le domaine S3, pas celui suggéré dans la saisie semi-automatique par AWS)
  • Ajouter un alias d'enregistrement Route 53 A à la distribution CloudFront
0
natanavra