Jak przekierować www na inną niż www w Route53?

24

Hostuję moją witrynę pod adresem domain.com.

Moje wpisy DNS w Route53 są następujące:

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

Chciałbym przekierować ruch z www.domain.comna domain.com, ponieważ obecnie zwraca on tylko 404. To pytanie w SO sugerowało PTRrekord i dodałem, że:

www.domain.com  PTR     domain.com           300

ale to nie działało. Co mam robić

Fredley
źródło
3
Jeśli faktycznie chcesz wysłać przekierowanie HTTP, nie możesz tego zrobić w DNS. Jeśli nie obchodzi Cię zmiana adresu URL w pasku adresu, użyj CNAME, jak sugeruje Pauska. Jeśli ci zależy, będziesz potrzebować jakiegoś serwera WWW, aby wysłać 301. Niektórzy dostawcy DNS mają to jako usługę, ale nie sądzę, że Route53 to robi.
cjc
@cjc Nie dbam o adres URL w pasku adresu.
fredley,

Odpowiedzi:

22

PTR służy do konfigurowania wyszukiwania wstecznego adresu IP i nie należy się tym przejmować. Usunąć to.

Potrzebujesz CNAME dla www:

www.domain.com  CNAME  domain.com 300
Pauska
źródło
15
To nie jest przekierowanie. W przypadku, gdy musisz zdefiniować zwrotny adres URL w jakiejś usłudze strony trzeciej, powyższe rozwiązanie nie będzie działać. Na przykład uwierzytelnianie oAuth (Facebook, Twitter).
Ck-
14

Możesz także ustawić ALIAS dla WWW na Rekord domeny.com:

www.domain.com A ALIAS domain.com 300

więc końcowe wpisy DNS byłyby następujące:

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
źródło
Zrobiłem to, jednak nadal nie działa. Czy może być jeszcze coś do zrobienia?
Utpal - Ur Best Pal
Po dodaniu aliasu musiałem usunąć pamięć podręczną przeglądarki, aby to zadziałało.
trees_are_great
I to zależy od poprzedniego TTL twojego DNS.
Hardeep Singh,
3

Po posiadaniu CNAME dla example.com i www.example.com ta konfiguracja nginx przekieruje ruch z http na https, a także wszystkie www.example.com na 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;
}

gdzie mój rzeczywisty serwer działa i nasłuchuje na porcie 3000 ... to także kończy moją TLS, ale po prostu usuń wzmiankę o ssl ... schowane w tych dołączonych plikach są moje ustawienia nginx, aby wzmocnić skrzynkę

Scott Stensland
źródło
-1

Jak wspomniano powyżej, nie jest to możliwe ze standardowym DNS.

Oto rozwiązanie, którego użyłem:

  • S3 skonfiguruj ze statycznym przekierowaniem strony na domenę inną niż www
  • Utwórz dystrybucję Cloudfront do S3 (używając domeny S3, a nie tej sugerowanej w autouzupełnianiu przez AWS)
  • Dodaj alias trasy 53 A Record do dystrybucji CloudFront
natanavra
źródło
@ Thomas zobacz edytowaną odpowiedź.
natanavra