[server] DNS 레코드를 사용하여 루트 도메인을 www 하위 도메인으로 전달

나는 한 www.mydomain.com푸른 웹 사이트에서 지적했다.

www.mydomain.com --- CNAME --- mydomain.azurewebsites.net

내가 방문 www.mydomain.com하면 모든 것이 잘 작동합니다. 이거 좋다

문제는 mydomain.com작동하지 않는 것입니다. Azure는 www 하위 도메인 만 허용합니다.

일부 네임 서버에서는 FWD 레코드를 사용하여 루트를 www로 전달하면 제대로 작동합니다. 현재 이름 서버 (zoneedit.com)에이 FWD 레코드가 없습니다.

루트 도메인을 www 하위 도메인으로 전달하는 데 사용할 수있는 DNS 레코드가 있습니까?



답변

불행히도 이것은 DNS 프로토콜의 잘 알려진 단점입니다. DNS 표준에는 도메인의 정점을 별칭으로 지정할 수있는 레코드 유형이 정의되어 있지 않습니다. 많은 사람들 CNAME이이를 달성하기 위해 레코드를 사용할 수 있다고 가정 하지만 그럴 수없는 기술적 이유가 있습니다 .

많은 DNS 공급자가이 단점을 해결하기 위해 사용자 지정 (읽기 : 가짜) DNS 레코드 유형을 구현합니다. 비하인드 한 이러한 가짜 레코드는 A원하는 목표를 달성하기 위해 합성 된 레코드와 웹 서버 리디렉션을 조합하여 회사 소프트웨어의 사용자 지정 동작을 구현 합니다. Michael이 댓글에서 지시 한 FWD것과 매우 유사합니다 WebForward.


답변

요약 : 요컨대, 원하는 레코드를 보유 할 수 없으며 DNS 호스트가 올바른 방식으로 작업을 수행하고 있습니다.

설명 : 영역 정점 (영역 앞의 빈 이름)에 CNAME (별명 레코드 / 전달 레코드)이있는 것은 DNS 표준을 위반하는 것입니다.

이는 CNAME 레코드의 이름 부분이 DNSSec 레코드를 제외한 모든 레코드와 충돌 할 수 없기 때문입니다. 일반적인 영역에서 영역 꼭대기의 CNAME 레코드는 최소한 SOA 및 NS 레코드 (및 다른 여러 레코드)와 충돌합니다. 일부 DNS 서버는이를 허용하지만 나쁜 것은 아니며 고장 진단을 어렵게 만들 수 있습니다 (영역 호스팅을 BIND 기반과 같은 표준 호환 DNS 서버로 옮길 경우 말할 것도 없습니다) .

zone apex에 A 레코드가 있습니다 (HTTP 302를 www로 보내는 간단한 웹 서버 일 수 있음). Azure 서버 인스턴스에 대한 고정 IP 번호를 얻을 수 있으면 영역의 정점에 각각 A 레코드를 넣고 정점 레코드를 가리키는 “www”라는 단일 CNAME 레코드를 만듭니다.

예로서 :


$ ORIGIN example.com.

@ IN SOA ns1.example.com. admin@example.com. (
                                 101;
                                 172800;
                                 900;
                                 1209600;
                                 3600; )
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ IN A 123.234.1.123
@ IN A 123.234.1.124
@ IN A 123.234.1.125
123.234.1.126의 ns1
123.234.1.127의 ns2
www IN CNAME example.com.


답변

일부 프로토콜에는 서비스를 찾기위한 A 레코드 이외의 DNS 레코드 유형에 대한 표준이 있습니다. MX 레코드와 연결된 SMTP가 이에 대한 좋은 예입니다. HTTP에 대해 정의 된 DNS 레코드 유형이 없습니다. 기존의 DNS / 등록 기관 공급자가 HTTP 리디렉션 또는 리버스 프록시 서비스를 사용했을 가능성이 있습니다.

목표를 달성하려면 하나의 호스트 이름에서 다른 호스트 이름으로 HTTP 301 또는 302 리디렉션을 수행하도록 웹 서버 (가상 호스트)를 설정하고 리버스 HTTP 프록시를 설정하거나 독립 가상 호스트를 설정하거나 가상 호스트 별명을 사용해야합니다. 동일한 웹 서버 인스턴스는 두 이름 모두에 응답합니다.


답변

Azure에 대한 답변을 원하는 경우 다음과 같이 awverify.mydomain.azurewebsites.net을 가리키는 다른 CNAME 레코드를 만들어야합니다.

www.mydomain.com --- CNAME --- awverify.mydomain.azurewebsites.net


답변