반응형


    IIS에서 HTTP 리디렉션 이용하기





    리디렉션 이란?


    원래 접속한 URL주소를 새로운 다른 주소로 자동으로 연결해주는 기능입니다. 웹 포워딩과 비슷한 역할을 하는데, 이전 접속 주소를 새 접속 주소로 바꿔주고 접속해주는 역을 합니다.

    쉽게 생각하면 휴대폰 번호를 바꾸면 요즘 통신사에서는 무료로 전화번호 안내 및 자동전환, 전달 서비스를 해주고 있는데 그것과 비슷한 개념으로 웹사이트를 운영중에 도메인 주소가 바뀌게 되면 자동적으로 연결이 되게끔 전달해주는 역을 합니다.

    이러한 기능들을 이용하여 여러개의 도메인을 보유하고 있는 경우에 하나의 사이트로 접속하게끔 만들 수 있습니다.


    만약 개인 서버를 이용하여 같은 서버내로 리디렉션을 하는 것을 추천하지 않습니다. (바로 연결하는 것보다 느리기 때문 에러 안내 페이지 제외)

    같은 서버에서 운영중인 사이트라면 바인딩을 추가하여 하나의 사이트로 접속하게끔 연결 도메인을 추가하는 것이 바로 오게끔 할 수 있습니다. 


    관련글


    12. 네임서버처럼 바인딩 설정하기


    IIS 여러 웹 페이지 사용하기 - 도메인 설정하기



    리디렉션을 이용해서 다른 URL 주소로 이동시키는 경우는 좀 더 효율적인 부분에서 생각을 해본다면, 서버를 이전해서 다른 서버에서 사이트를 운영중인 경우에 더 합리적입니다. 같은 서버 내에서 리디렉션은 전혀 의미가 없다고 봅니다. 바인딩만 묶어주면 되니깐요.


    사실 서버를 이전했다고 하더라고 해당 서버에 기존에 사용하던 도메인 주소를 연결해주면 되지만, 임시로 사용을 하는 경우나 일시적으로 잠깐 페이지를 돌려야 하는 경우 굉장히 유용하다고 할수 있습니다. 특히, 사이트를 점검한다든지, 공사중이라든지 하는 파킹페이지로 사용할 때 리디렉션은 더 좋은 효과를 가지게 됩니다.


    역시나 제가 운영하는 개인 서버도 IIS를 웹서버로 사용하고 있기 때문에 IIS에서 리디렉션을 할 수 있는 방법을 소개하고자 합니다.




    IIS에서 리디렉션 연결하기


    IIS에서는 비교적 쉬운 방법으로 리디렉션 연결을 지원합니다.


    일반적으로 리디렉션 하는 이유는 위에서도 나열하였지만, 다음과 같은 경우에 사용하면 좋습니다.


    1. 사이트 수정중 또는 공사중과 같은 테스트시에 관련 페이지로 자동 연결이 필요할 때

    2. 서버와 도메인 주소를 한번에 이전하였는데 도메인 주소를 일시적으로 남겨둘 때

    3. 서버외에 사이트가 다른 외부 서비스로 연결을 해야할 때

    4. http 주소를 https 주소로 변환할 때


    이런 경우에만 사용하는 것이 좋을 듯합니다.


    그럼 본격적인 HTTP 리디렉션을 설정해 보도록 합니다. IIS는 대부분 GUI형태로 지원하기 때문에 어렵지 않게 설정가능합니다.

    먼저, IIS를 실행한 뒤 앞으로 다른 사이트로 리디렉션 시킬 사이트를 선택하고 HTTP 리디렉션을 실행합니다.



    여기서 이 사이트를 앞으로 어디로 리디렉션 시킬것인지 설정합니다.


    해당 페이지가 앞으로 자동으로 이동하게 될 사이트 입니다. 



    하단의 추가 옵션인 동락 리디렉션에 대해 좀 더 설명을 드리자면,

    모든 요청을 대상 기준 대신 정확한 대상으로 리디렉션

    아까 리디렉션의 사용 목적중에 공사중이나, 점검중에 안내 페이지를 표시할 파킹페이지로 연결시킬 수 있다고 했는데, 그 때 사용해야 합니다.

    만약, 연결할 안내 페이지의 주소가 http://www.mydomain.com/error.html이라고 한다면, 해당 옵션을 체크하셔야 온전하게 해당 페이지로 이동하게 됩니다. 

    이 옵션의 체크가 되어있지않다면 http://www.mydomain.com/ 으로 접속을 하게 됩니다. (정확한 문서의 위치가 아니기 때문에) 일반적인 서버 이전이라면 체크를 안하셔도 됩니다.


    요청을 이 디렉터리(하위 디렉터리 제외)의 콘텐츠로만 연결

    만약 이 옵션을 체크를 안하고 리디렉션을 http://www.mydomain.com/xe/ 라는 주소로 연결을 하였다면 그 하위 주소인  http://www.mydomain.com/xe/admin 폴더와 같은 하위 디렉토리도 같이 리디렉션 요청을 하게 되는데  이 옵션을 체크하게 되면 해당 디렉터리인 http://www.mydomain.com/xe/ 로만 요청하게 됩니다.


    상태코드 (브라우저 상에서 직접적으로 보이지 않습니다.)

    에러코드와 같이 바로 보이는 코드가 아니지만, 나중에 접속한 컴퓨터의 브라우저에서 앞으로 어떻게 이 리디렉션을 해결할 것인지 결정합니다. 쿠키에 관여 할 수도 있습니다.

    301(영구) - 클라이언트에서 앞으로 항상 리디렉트된 주소로 접속할 것을 알려줌.(브라우저 쿠키에 관여)

    302(찾음) - 리디렉션이 진행되고 정상적으로 사이트로 이동됨을 알려줌.(나중에 변경될수 있음을 알려줌)

    307(임시) - 이번만 리디렉션으로 접속하는 것으로 알려줌. (쿠키 저장안함)


    아, 참고로 http://a.com 이라는 사이트를 http://b.com 이라는 사이트로 리디렉션 시킬때 b.com의 하위폴더로더 요청할 수 있습니다.


    만약, http://b.com/temp 라는 하위 주소가 있다면 http://a.com/temp를 입력하는 것만으로도 http://b.com/temp로 주소를 치고 들어가는 것과 같은 효과를 누립니다.

    단, 이렇게 사용하실려면 모든 요청을 대상 기준 대신 정확한 대상으로 리디렉션의 체크를 하시면 안됩니다.



    이제 마지막으로 정상적으로 동작하는지 확인하기 위해 웹사이트 찾아보기를 통해 리디렉션 주소가 아닌 원래 주소로 접속을 테스트해 봅시다.


    여기서 든 예는 

    원래 주소 - http://localhost:2341 

    리디렉션 할 주소 - http://www.naver.com


    웹 사이트 찾아보기로 http://localhost:2341로 접속하면 네이버로 정상 접근하는 것을 확인하였습니다.


    마지막으로 이 리디렉션 기능은 http 주소를 https 로 변환할 때 상당히 편합니다. 일반적으로 사용자들은 https 를 귀찮게 적지 않기 때문에 http로 접속될 주소를 자동으로 https로 변경해주는게 아주 큰 역을 하기도 합니다.


    사실 요즘에는 SSL이 활성화 되어 있어서 보안 프로토콜인 https로 자동으로 변환되게 하기 위해 이 리디렉션을 많이 사용합니다. 사이트에 SSL을 사용하실 분들은 반드시 이 리디렉션 기능을 이용하여 http로 접속하는 분들도 https로 접속할 수 있게끔 해주는 것이 좋습니다.




    반응형
    Posted by clamp2x