Route53에서 www를 www가 아닌 ​​www로 리디렉션하는 방법은 무엇입니까?


24

에서 내 사이트를 호스팅 domain.com합니다.

Route53의 DNS 항목은 다음과 같습니다.

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.comdomain.com로 현재이 단지 404 반환, SO에이 질문은 제안 된 PTR기록을하고, 그 추가 :

www.domain.com  PTR     domain.com           300

그러나 그것은 작동하지 않았습니다. 어떻게해야합니까?


3
실제로 HTTP 리디렉션을 보내려면 DNS 내에서 할 수 없습니다. 주소 표시 줄의 URL 변경에 신경 쓰지 않으면 pauska가 제안한대로 CNAME을 사용하십시오. 관심이 있다면 301을 보내려면 일종의 웹 서버가 필요합니다. 일부 DNS 공급자는 이것을 서비스로 사용하지만 Route53이 그렇게하지는 않습니다.
cjc

@cjc 주소 표시 줄의 URL에 관심이 없습니다.
Fredley

답변:


22

PTR은 역방향 IP 조회를 설정하기위한 것이며주의해야 할 사항이 아닙니다. 제거하십시오.

필요한 것은 www의 CNAME입니다.

www.domain.com  CNAME  domain.com 300

15
이것은 리디렉션이 아닙니다. 어떤 종류의 타사 서비스에서 콜백 URL을 정의 해야하는 경우 위의 솔루션이 작동하지 않습니다. 예를 들어 oAuth (Facebook, Twitter) 인증입니다.
Ck-

14

WWW에 대한 별칭을 domain.com의 레코드로 설정할 수도 있습니다.

www.domain.com A ALIAS domain.com 300

최종 DNS 항목은 다음과 같습니다.

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)

나는 이것을했지만 여전히 작동하지 않습니다. 해야 할 다른 일이 있습니까?
Utpal-Ur Best Pal

별칭을 추가 한 후이 작업을 수행하려면 브라우저 캐시를 삭제해야했습니다.
trees_are_great

그리고 DNS의 이전 TTL에 따라 다릅니다.
Hardeep Singh

3

example.com과 www.example.com에 대한 CNAME이 있으면이 nginx 구성은 http에서 https로뿐만 아니라 모든 www.example.com에서 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;
}

내 실제 서버가 작동하고 포트 3000에서 수신 대기하는 경우 ... 이것은 또한 TLS를 종료하지만 ssl에 대한 언급을 제거합니다 ...


-1

위에서 언급했듯이 표준 DNS로는 불가능합니다.

내가 사용한 솔루션은 다음과 같습니다.

  • 정적 웹 사이트를 www가 아닌 ​​도메인으로 리디렉션하여 S3 설정
  • S3에 대한 Cloudfront 배포를 생성합니다 (AWS에서 자동 완성에서 제안한 것이 아닌 S3 도메인 사용)
  • CloudFront 배포에 Route 53 A 레코드 별칭 추가

@Thomas는 수정 된 답변을 봅니다.
natanavra
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.