Wie leite ich in Route53 www zu Nicht-www um?


24

Ich hoste meine Seite bei domain.com.

Meine DNS-Einträge in Route53 lauten wie folgt:

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

Ich mag Verkehr umleiten aus www.domain.comzu domain.com, wie dies derzeit nur 404. kehrt diese Frage auf SO ein vorgeschlagene PTRProtokoll, und ich fügte hinzu , dass:

www.domain.com  PTR     domain.com           300

aber es hat nicht funktioniert. Was soll ich machen


3
Wenn Sie tatsächlich eine HTTP-Umleitung senden möchten, können Sie dies nicht innerhalb von DNS tun. Wenn es Ihnen egal ist, ob sich die URL in der Adressleiste ändert, verwenden Sie einen CNAME, wie von pauska vorgeschlagen. Wenn es Ihnen etwas ausmacht, benötigen Sie einen Webserver, um den 301 zu senden. Einige DNS-Anbieter bieten diesen Dienst an, aber ich glaube nicht, dass Route53 dies tut.
cjc

@cjc Die URL in der Adressleiste interessiert mich nicht.
Fredley

Antworten:


22

PTR dient zum Einrichten von Reverse-IP-Lookups und sollte Sie nicht interessieren. Entfernen Sie es.

Was Sie brauchen, ist ein CNAME für www:

www.domain.com  CNAME  domain.com 300

15
Dies ist keine Weiterleitung. Falls Sie eine Rückruf-URL in einem Drittanbieter-Dienst definieren müssen, funktioniert die obige Lösung nicht. Zum Beispiel oAuth (Facebook, Twitter) -Authentifizierung.
Ck

14

Sie können ALIAS für WWW auch auf A record of domain.com setzen:

www.domain.com A ALIAS domain.com 300

Ihre endgültigen DNS-Einträge lauten also wie folgt:

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)

Ich habe das gemacht aber es funktioniert immer noch nicht. Ist sonst noch etwas zu tun?
Utpal - Ur Best Pal

Nach dem Hinzufügen des Alias ​​musste ich den Browser-Cache löschen, damit dies funktioniert.
trees_are_great

Und es hängt von der vorherigen TTL Ihres DNS ab.
Hardeep Singh

3

Nachdem Sie einen CNAME für example.com und www.example.com haben, leitet diese Nginx-Konfiguration den Datenverkehr von http zu https sowie von www.example.com zu example.com um

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;
}

wo mein eigentlicher Server ist und auf Port 3000 lauscht ... dies beendet auch mein TLS, aber entfernen Sie einfach die Erwähnung von ssl ... versteckt in den enthaltenen Dateien sind meine Nginx-Einstellungen, um die Box zu härten


-1

Wie oben erwähnt, ist dies mit Standard-DNS nicht möglich.

Hier ist die Lösung, die ich verwendet habe:

  • Richten Sie S3 mit statischer Website-Weiterleitung zu Ihrer Nicht-WWW-Domain ein
  • Erstellen Sie eine Cloudfront-Verteilung für Ihren S3 (unter Verwendung der S3-Domäne, nicht der von AWS für die automatische Vervollständigung vorgeschlagenen Domäne).
  • Hinzufügen eines Route 53-A-Datensatz-Alias ​​zur CloudFront-Distribution

@ Thomas siehe bearbeitete Antwort.
Natanavra
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.