레코드 또는 C이름

레코드 또는 C이름

클라이언트가 자체 하위 도메인, 즉 기본적으로 와일드카드 하위 도메인을 생성할 수 있는 앱을 호스팅하는 서버(Ubuntu + Apache)가 있습니다.

우리 서버에 있는 고유한 하위 도메인(client.app.com)에서 자신의 도메인(www.client.com)을 가리키기를 원하는 클라이언트가 있습니다. 이는 투명하게 이루어져야 합니다. 따라서 누군가 www.client.com을 입력하면 URL에는 여전히 www.client.com이 표시되지만 모든 것이 client.app.com에서 투명하게 작동합니다.

DNS에서 그는 우리 IP 주소를 가리키는 A 레코드를 만들어야 합니까, 아니면 client.app.com을 가리키는 cname을 만들어야 합니까?

두 경우 모두 생성해야 하는 가상 호스트에 차이점이 있나요?

답변1

DNS에서 그는 우리 IP 주소를 가리키는 A 레코드를 만들어야 합니까, 아니면 client.app.com을 가리키는 cname을 만들어야 합니까?

client.app.com을 가리키는 CNAME을 사용해야 합니다. 이를 수행하는 데는 여러 가지 이유가 있지만 아마도 가장 좋은 이유는 서버의 IP 주소가 변경될 경우 변경해야 할 사항이 적다는 것입니다. client.app.com에 대한 항목만 업데이트하면 되며 그 밖의 모든 항목은 업데이트되어야 합니다. CNAME을 사용하면 자동으로 따라옵니다.

다른 이유에는 언급된 다른 포스터 중 하나와 같이 MX 레코드와 동일한 이름의 A 레코드를 가질 수 없기 때문입니다. 호스트에는 단 하나의 "실제 이름"(A 레코드)만 있어야 하며 동일한 호스트를 가리키는 다른 레코드는 별칭(CNAME)이어야 한다는 일반적인 철학도 있습니다. 물론, 여러 IP와 여러 호스트를 가리키는 단일 A 레코드가 있을 때 이러한 철학은 무너집니다(그러나 클라이언트가 CNAMES를 사용하는 또 다른 좋은 주장은 다음과 같습니다. 서비스가 대중화되면 로드 밸런싱을 통해 서비스를 확장해야 합니다. 동일한 서비스를 제공하는 다른 호스트가 있는 경우 고객이 아무것도 변경하지 않고도 혜택을 누릴 수 있기를 원할 것입니다. (물론 로드 밸런싱과 확장을 수행하는 방법은 다양하며 DNS에 연결되지 않은 방법을 쉽게 선택할 수도 있지만 이는 구현에 따라 다릅니다.)

두 경우 모두 생성해야 하는 가상 호스트에 차이점이 있나요?

선택한 DNS 방법에 관계없이 Apache가 다른 이름을 허용하도록 구성되어 있는지 확인해야 합니다.

누군가가 www.client.com을 입력하면 URL에는 여전히 www.client.com이 표시되지만 모든 것이 client.app.com에서 투명하게 작동합니다.

물론 Apache 문서를 직접 둘러보면서 아래 내용을 확인하고 싶을 수도 있지만 이를 수행하는 두 가지 방법을 생각해 볼 수 있습니다.

  1. UseCanonicalName OffServerAlias각각 내부 와VirtualHost기입:

    UseCanonicalName Off <VirtualHost *:80> ServerName www.client.com ServerAlias client.app.com DocumentRoot /www/client </VirtualHost>

  2. 여러 개 사용ServerName그리고VirtualHost항목:

    <VirtualHost *:80> ServerName www.client.com DocumentRoot /www/client </VirtualHost> <VirtualHost *:80> ServerName client.app.com DocumentRoot /www/client </VirtualHost>

어느 방법을 사용하든 원하는 동작에 맞게 URL을 생성하려면 html 및 관련 스크립트가 "올바른 작업"을 수행하는지 확인해야 할 수도 있습니다.

여기에는 좋은 예와 흥미로운 토론이 많이 있습니다.http://httpd.apache.org/docs/2.4/vhosts/mass.html주제에.

관련 정보