내 / etc / hosts 파일은 다음과 같습니다.
127.0.0.1 localhost
10.20.7.67 testsitealpha.dev
othersite.dev testsitebeta.dev
처음 두 작품. 마지막은 그렇지 않습니다. 왜 안돼? 어떻게 작동합니까? 내가하고있는 이유는 로컬 네트워크에있는 테스트 서버 (othersite.com)가 있지만 IP가 다를 수 있기 때문입니다. 예 : 10.20.7.98 하루, 10.20.7.35 하루 등
따라서 시스템이 항상 testsitebeta.dev를 othersite.dev와 동일한 IP로 확인하도록하려면 어떻게해야합니까?
답변
Chris가 이미 쓴 것처럼 문제는 “othersite.dev”가 숫자가 아니라는 것입니다. 필요한 형식은 IP hostname1 [hostname2] [hostname3]
입니다.
그러나 더 깊은 문제는 호스트 파일과 일반적으로 DNS에 대한 오해입니다. 기본적으로 호스트 파일은 리디렉션을 위해 설계되지 않았습니다. CPU 사이클이 비싼 곳에서 돌아온 간단한 솔루션이었습니다. 파일을 수동으로 편집 할 필요없이 빠르게 변화하는 IP 주소로 조정하는 기능과 같은 기능이 부족했습니다. 이러한 문제는 호스트 파일에서 네트워크 기반 리졸버 시스템으로 전환하여 해결되었습니다.
따라서 문제에 대한 진정한 대답은를 /etc/hosts
사용하는 것이 아니라이 계층 적 분산 명명 시스템을 대신 사용하는 것입니다. 여러 가지 방법으로 그렇게 할 수 있습니다. 한 가지 방법은 Chris가 제안한 CNAME입니다. 다른 방법은 두 번째 서버에 고정 IP 주소를 제공하는 것입니다. 실제 고정 주소이거나 DHCP 서버에서 예약합니다.
답변
/ etc / hosts의 형식은 “IP” “Hostname”입니다. 127.0.0.1 localhost
필요한 CNAME
것을 달성하려면 로컬 DNS 서버에이 있어야합니다. “testsitealpha.dev”에서와 같이 “othersite.dev”의 IP를 가져 와서 “testitbeta.dev”에 링크 할 수 있지만 IP가 변경되면 /etc/hosts
파일도 변경해야 합니다.
답변
othersite.com에 동적 IP가 있지만 항상 이름으로 액세스 할 수있는 경우 항상 이름으로 참조하여 등록 된 DNS에 의존해야합니다.
귀하의 솔루션은 testsitebeta.dev를 othersite.com의 리디렉션 URL로 만드는 것입니다.
ServerName testsitebeta.dev 리디렉션 / http://othersite.com
이렇게하면 othersite.com이 항상 작동하고 (호스트 항목이 잘못되어도 중단되지 않음) testsitebeta.dev는 이름을 올바른 IP로 확인하여 항상 othersite.com으로 리디렉션됩니다.