내 윈도우 PC에서 실행중인 로컬 웹서버에 도메인/호스트명을 연결하기

내 PC에 설치된 웹서버는 기본적으로 "localhost", 또는 "127.0.0.1" 과 같은 로컬호스트 IP로 접근이 가능합니다.

물론 웹서버에 기본 구성되는 기본 웹사이트에 로컬호스트에 대한 접근 설정이 기본적으로 되어있기 때문입니다.

웹서버 설정에서 로컬호스트 접근 설정을 지우면 "localhost", 또는 "127.0.0.1"로 접근할 수 없습니다.

설치한 웹서버(IIS, 아파치, NGINX 등)에 여러개의 웹사이트를 구성할 경우 이 웹사이트를 구분해서 접근할 필요가 있게 됩니다.

가장 기초적인 방법은 각 웹사이트에 접근 포트를 다르게해서 접근하도록 하는 것입니다.

예를 들어 웹사이트 A, B, C 3개를 웹서버에 구성해 올렸을 경우

웹사이트 A는 80포트, 웹사이트 B는 81포트, 웹사이트 C는 82포트로 설정을 하면

웹브라우저에서 "localhost:82" 와 같은 식으로 웹사이트를 구분해서 접근할 수 있게 됩니다.

가장 쉽고 단순하지만, 인간의 기억력이 플래시 메모리같은게 아니라서 시간이 지나면 몇번 포트에 어떤 사이트를 할당했는지 자주 잊어버립니다.

심지어는 몇번 포트를 할당했는지도 기억이 안나게 됩니다.

8080, 8081, 8800 이런식으로 포트를 부여했을 경우 더더욱 그렇습니다.

이런 경우를 위해 윈도우 PC에는 사용자가 임의로 지정한 도메인, 또는 호스트명에 대해 로컬호스트로 다시 루프백을 할 수 있도록 하는 설정파일을 제공합니다.

정확하게는 루프백만을 위한 것은 아니고, 특정 도메인이나 호스트 명으로 네트워크 접근을 하는 경우 지정된 IP로 직접 가도록 IP를 지정해주는 일종의 라우팅 테이블 같은 역할을 하는 것입니다.

도메인에 매핑한 IP가 127.0.0.1 이면 인터넷으로 가지 않고 바로 내 컴퓨터로 접속을 하게 되는 것입니다.

80포트로 접속하는 웹서비스만 해당되는 것은 아니고 해당 도메인, 호스트명으로 접근하는 모든 포트 접속에 대해서 매핑된 IP로 접근을 하게 됩니다.

설정 파일 위치는 

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

입니다. 파일 확장자가 없습니다. "hosts" 가 파일명입니다.

메모장이나 사용하는 텍스트 편집기에서 파일을 엽니다.

아래와 같은 내용이 표시됩니다.

앞에 #이 붙은 것은 주석표시입니다.

초기 상태에서는 빈 파일이라는 뜻이고, 하단에 보면 도메인을 어떻게 매핑하는지, 로컬호스트는 어떻게 도메인을 매칭하는지 친절한 예가 있습니다.

이상태 그대로 저장을 해봅니다.

아래와 같은 메시지가 표시됩니다.

모든 편집기에서 동일합니다.

"hosts" 파일은 시스템 파일이기 때문에 관리자 권한이 있어야만 수정을 할 수 있습니다.

즉, "hosts" 파일을 여는 텍스트 편집기를 관리자 모드로 실행해야 합니다.

메모장에서 열었으므로 메모장 아이콘위에 마우스 커서를 올리고 오른쪽 클릭을 하면 컨텍스트 메뉴가 표시됩니다.

"관리자 권한으로 실행" 선택합니다.

이제 "hosts" 파일을 다시 열면 저장할 수 있게 됩니다.

"hosts" 파일에 내 로컬 컴퓨터의 웹서버에 설정된 웹사이트를 매핑한 도메인, 또는 호스트를 추가합니다.

IP는 "127.0.0.1" 입니다.

예를 들어 다음과 같이 맨밑에 내용을 추가할 수 있습니다.

127.0.0.1    mydomain.com

127.0.0.1    devsite

도메인 네이밍 규칙에 맞으면 "." 으로 구분되지 않은 단순 호스트명도 가능합니다.

저장합니다.

이제 로컬 컴퓨터에 저장한 웹서버에서 위에 추가한 도메인을 각 웹사이트별로 바인딩을 합니다.

직관적 UI가 있어서 편한 IIS 를 예를 들면

도메인이나 호스트 이름을 매핑한 웹사이트를 선택한 후 바인딩 창을 열서 위에서 추가한 도메인이나 호스트명을 추가해줍니다.

포트는 기본 80포트 그대로 사용합니다.

웹브라우저를 열어 새로 추가한 사이트가 열리는지

"http://devsite"를 입력해 접근해봅니다.

사이트가 잘 열리면 성공입니다.

매핑한 웹사이트가 안열리고 아래와 같은 메시지가 나오면 위 과정중 하나 이상을 제대로 설정하지 않은 것입니다.

hosts 설정이 잘못된 경우
웹서버 설정이 잘못된 경우