localhost URL에 하위 도메인 추가


102

URL 접두사에 따라 다르게 작동하는 웹 응용 프로그램을 작성 중입니다. 형식은 다음과 같습니다.

   https://myprefix.mycompany.com

웹 앱은 myprefix에 따라 다르게 작동합니다. 내 웹 앱은 URL에서 해당 부분을 추출하고 이에 따라 작동합니다.

그러나 로컬에서 테스트 할 때 localhost 주소를 사용합니다.

   https://localhost:1234

나는 다음과 같은 것을 할 수 없다.

   https://myprefix.localhost:1234

이 시나리오를 테스트하는 가장 좋은 방법은 무엇입니까?

많은 감사


다음은이 문제의 해결책이다 stackoverflow.com/a/29629675/2950006은
Mickel Chowdhury

답변:


146

안타깝게도은 localhost적절한 도메인이 아니기 때문에 하위 도메인을 추가 할 수 없습니다. 당신은 할 수 있습니다 , 그러나, 특정 도메인 및 테스트 것들을 그런 식으로 소유 생각으로 컴퓨터를 속여. 예를 들어, UNIX 기반 운영 체제를 사용하는 경우 파일을 열고 (루트 권한으로 /etc/hosts) 다음과 같이 한 줄 (또는 줄)을 추가합니다.

127.0.0.1    example.com
127.0.0.1    subdomain.example.com

컴퓨터는 이제 모두 취급 example.com하고 subdomain.example.com자체에 속하는있다. 웹 브라우저에서 방문하면 원칙적으로와 동일하게 작동 localhost하지만 웹 서버는 호스트 헤더에서 올바른 도메인을 볼 수 있습니다.


답변 해 주셔서 감사합니다. 이것이 바로 내가 원하는 것입니다. 그러나 내 웹 앱은 1234와 같은 포트에서 실행됩니다. 주변을 검색 한 결과 사람들은 / etc / hosts에 포트 번호를 지정할 방법이 없다고 말했습니다. 포트를 지정하는 가장 좋은 방법은 무엇입니까?
Kevin

7
평소처럼 URL에 포트를 사용해야합니다 (예 : http://subdomain.example.com:1234/whatever. 포트는 도메인과 완전히 별개입니다 (도메인은 시스템을 식별하는 데 사용되고 포트는 시스템에서 통신 할 프로그램을 식별하는 데 사용됨).
Matt Patenaude 2013 년

또는 테스트를 위해 소프트웨어를 루트로 실행할 수있는 경우 기본값 인 포트 80 만 사용할 수 있으므로 지정할 필요가 없습니다.
Matt Patenaude 2013 년

4
IP 주소 뒤에 도메인 이름을 나열 할 수 있습니다. 127.0.0.1 example.com sub.example.com sub2.example.com...
automaton

6
이것은 Windows에서도 작동합니다. Windows의 호스트 파일은 다음 위치에 있습니다 C:\Windows\System32\drivers\etc\hosts. 파일을 편집하려면 (예 : 데스크톱) 권한이 낮은 다른 위치에 파일을 복사 한 다음 폴더에 다시 붙여 넣어야합니다 (권한 문제 해결을 위해).
Lindsay-Needs-Sleep

36

나는 창문에서 같은 행동에 대해 확신하지 못합니다. 나는 리눅스 민트에서 일하고 있습니다.

lvh.me:port로컬 도메인으로 사용할 수 있습니다 . 프로젝트 localhost:port가이 도메인에 배포되어 있다고 상상할 수 있습니다 .

sub.localhost:port당신 대신에sub.lvh.me:port

UPD

sub.localhost:port크롬에서 작동합니다. Firefox는 자동으로 www를 추가합니다. 하위 도메인 테스트에 문제를 일으킬 수있는 입력 된 도메인의 시작 부분


Windows에서도 작동하는지 확인할 수 있습니다. Internet Explorer, Edge, Firefox 및 Chrome 브라우저는 완벽하게 작동합니다!
Jose A

나는 파이어 폭스를 사용하고 있었고 크롬 팁은 내 하루를 구했습니다. 감사합니다!
ZekeMidas

2
추가적인 유연성을 위해 nio.io 또는 xip.io 서비스를 사용할 수도 있습니다. 모든 IP 주소를 모든 하위 도메인에 매핑 할 수 있습니다. 예를 들어 동료도 동일한 URL을 사용하여 앱에 액세스 할 수 있습니다. 예를 들어 워크 스테이션의 IP 주소가 172.16.0.42인 경우 https://myprefix.myapp.172.16.0.42.nip.io:1234PC 또는 인트라넷의 다른 PC에서 사용할 수 있습니다 .
mh8020

6

Windows 사용자의 경우이 답변 과이 설명 에 따라 다음 경로에 있는 호스트 파일을 통해 localhost에 포트를 추가하여이를 수행 할 수 있습니다 .

C:\Windows\System32\drivers\etc\hosts

그리고 다음과 같은 줄을 추가합니다.

127.0.0.1    example.com
127.0.0.1    subdomain.example.com

1

Windows 용 원 라인 솔루션

관리자 권한 으로 PowerShell 을 열고 다음 명령을 실행하여 원하는대로 바꿉니다 .sub.mydomain.com

"`n127.0.0.1    sub.mydomain.com" | Out-File C:\Windows\System32\drivers\etc\hosts -encoding ASCII -append

고장:

  • `n -개행
  • 127.0.0.1 -루프백 주소
  • sub.mydomain.com - 도메인 이름
  • | Out-File C:\Windows\System32\drivers\etc\hosts -문자열을 hosts
  • -encoding ASCII -올바른 인코딩
  • -append-파일 끝에 추가 (중요!)

1

.test그런 일에 도메인을 사용해야합니다 . 그게 .test목적입니다. localhost하위 도메인이 없어야합니다.

그렇게하는 것은 승인 된 RFC 표준을 위반하는 것입니다. localhostA 레코드가 있고 IPv6 환경에서는 AAAA 레코드가 있습니다. SOA를 포함한 다른 모든 DNS 레코드 유형은 금지됩니다.

SOA 레코드가 없으면 하위 레코드가있는 zone apex가 될 수 없으므로 하위 도메인이나 위임이 허용되지 않습니다. Let localhost be localhost라는 제목의 최근 RFC 초안도 이와 일치합니다.

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