본문 바로가기

[뭘, 이런걸 다?]

[뭘, 이런걸 다?] localhost의 특정 포트를 named host처럼 접근하기

* 아래 내용은 정상적으로 동작하지 않을 수 있습니다. 그럼에도 올리는 이유는, 말 그대로 정상 동작하지 않는 경우와 이유를 찾아내 보고 싶은 마음에서 입니다. 이점을 참고해서 읽어주세요. 동작여부를 댓글로 달아주시면 제작자에게 메일 보내 보겠습니다. *

예를 들면, 팀에서 myservice.com 이라는 도메인에서 웹 애플리케이션을 만들고 있다고 가정해 보겠습니다.

local에서 작업할때 127.0.0.1이나 localhost를 접속 host명으로 사용하곤 하는데 
port까지 써야하면 모양이 좋지 않습니다. 그리고, 예전엔 특정 configuration에 설정이
개발환경과의 차이때문에 배포후에 문제가 생기곤 했던 시절도 있습니다.

이런 경우, named host를 이용해서 좀 더 우아하게(..그런게 이바닥에 어울리는 단어인가는 논외로 하고..) 개발 작업스타일에 대한 소개입니다.

* 윈도우 환경 기준입니다. *

톰캣을 띄운다고 가정해 보겠습니다.
기존에 서비스가 있어서, 혹은 어떤 다른 이유로 이번 톰캣은 포트를 8888로 잡았습니다. 

이제 브라우저에서 접근하려면 URL의 host를 아래와 같이 적어야 합니다.

http://127.0.0.1:8888/blog


이제 named host로 지정해 보겠습니다.

작업 후에는
http://local.myservice.com/blog
와 같은 식으로 접속하는 것이 목표입니다.

물론 localhost로 써도 되지만, 좀 더 서비스 느낌이 나도록 
local.myservice.com 으로 해보겠습니다. 다음 파일을 메모장 등의 에디터로 엽니다.

C:\Windows\System32\drivers\etc\host


아래와 같이 서비스 호스트명의 alias를 정합니다.

# localhost name resolution is handled within DNS itself.

127.0.0.1       localhost

127.0.0.2    local.myservice.com


이제
http://www.rouvali.com 사이트로 가서
Windows Port Forwarding Service를 다운 받아 설치합니다. 

 
인스톨 끝나면 설정 파일이 자동으로 열립니다.

<?xml version="1.0"?>

<forwarder>

<listen port="80">

<forward match="127.0.0.2" destination="127.0.0.1" destinationPort="8888"/>

</listen>

</forwarder>


[컴퓨터 관리 -> 서비스]에서 forwarder가 시작되었는지 확인한 다음, 정지되어 있으면 시작시킵니다.



이제 브라우저 url 창에서 아래와 같은 url로 접속하면

http://local.myservice.com

 
내부적으로는
127.0.0.1:8888 로 접속하게 됩니다.

또한 host alias는 127.0.0.2로 했기 때문에, 기존에 127.0.0.1로 사용하던 alias들과도 충돌이 발생하지 않습니다.

네. 이상입니다. :D
끝~~

ps.
win7에서는 보안패치 관련해서 관리메뉴 진입시 에러가 날 수도 있습니다
http://mastmanban.tistory.com/531