리버's 아름다운 소풍

Apache와 IIS 5 한집 살림하기

OS/IIS 2008/04/02 19:55 by 리버
하나의 윈도우 서버에 아파치와 IIS를 동시에 돌려야 할 경우가 있다. 우리회사는 웹서버로 IIS를 사용하는데 요번에 블로그 서비스를 기획하면서 텍스트큐브를 도입하기로 결정을 했다. 하지만 아직까지 IIS에서 텍스트큐브를 돌리기가 여의치 않아서 결국 아파치를 선택할 수 밖에 없었다. 서버를 따로 구입해서 블로그 전용서버로 사용하는게 제일 좋은 방법이겠지만, 서버를 구입하지 않고 어떻게 하면 같이 돌릴 수 있을까 고민을 해봤다.

두가지 방법을 생각해 볼 수 있다. 가장 쉬운 방법으로 포트를 서로 다르게 갖고 가는 것이다. 예를 들면 IIS는 80포트, 아파치는 8080포트로 돌리는 거다. 가장 쉽기는 한데, URL에 8080이 들어가는 게 좀 찜찜하다. 물론 프레임을 사용해서 8080포트가 붙은 주소를 감출 수는 있다.

다른 방법은 여유의 IP가 하나 더 있는 경우이다. IP가 하나더 있다면 각각에 IP를 할당하면 될테니깐.

나름 후자가 더 바람직한 방법 같아서 하나의 윈도우 서버에 IP를 두개 부여하고, IIS와 아파치에 IP를 각각 따로 설정했다. 그런 다음 잘 되겠지 하고, 먼저 IIS를 재시작하고, 다음에 아파치를 시작했더니 웬걸 이미 IP 주소가 사용되고 있어서 시작할 수 없다는 오류가 떨어지는 거다. 음 ... IIS가 왜 다른 주소를 잡고 있을까?

한참을 고민하다가 IIS는 socket pooling을 한다는 사실을 알아냈다. 즉 IIS는 기본적으로 서버에 있는 모든 IP 주소에 리슨을 한다는 거다. 이를 방지하는 방법은 간단했다.

cd \inetpub\Adminscripts
cscript adsutil.vbs set w3svc/disablesocketpooling true

위 명령을 실행하면
disablesocketpooling : (BOOLEAN) True
이라는 결과를 볼 수 있다.

이렇게 설정을 하고 IIS를 재시작하니 드디어 IIS와 아파치가 사이좋게 지내는 거다. 대량의 트래픽이 발생하는 사이트는 당연히 이렇게 사용을 할 수 없을 테지만, 간단한 개인 블로그 정도는 이렇게 써도 무방하지 않을까?

Windows 2003에서는 IIS 6가 제공되고 있다. IIS 6에서 socket pooling을 방지하는 방법은 IIS 5와 틀리다. IIS 6에서 socket pooling 방지하는 방법을 참고하면 된다.

이 글의 관련글
일주일간 인기글
오늘 인기글
MS의 IIS Lockdown Tool은 IIS의 보안취약점을 보안해준다. 여러 취약점중 idq의 버퍼오버플로우 문제로 인해서 idq의 매핑을 idql.dll에서 404.dll로 바꾸어 놓는다.
idq를 쓸 일이 있어서 idq의 매핑을 idq.dll로 바꾸어 놓고 .idq 파일을 브라우져로 접근했더니 로그인 창이 뜨고 OK를 눌렀더기 "HTTP 401.3 - Access denied by ACL on resource Internet Information Services" 란 오류가 발생했다. 한참을 삽질한 뒤 해결책을 발견했다.

IIS Lockdown Tool은 설치중 변경 이력을 windows\system32\inetsrv\oblt-log.log 파일에 남긴다. 이 파일 내용에 해결책이 있었다.

사용자 삽입 이미지

idq.dll에 뭔지는 모르지만 보안사항을 변경한 것을 알수있다. 탐색기를 통해 보안정보를 확인해보면 이 내용이 뭔지 알 수 있다.

사용자 삽입 이미지

Everyone에 대해 idq.dll이 실행이 안되도록 설정을 바꾸어 놓은 것이다. 해결책은 간단하다. 위의 체크된 사항을 해제하면 된다.

이 글의 관련글
    이글의 태그와 관련된 글이 없습니다.
일주일간 인기글
오늘 인기글

좀 오래된 자료지만 프로그래머가 개발시 에디터등에서 많이 사용되는 폰트에 대한 내용이 있어서 옮겨 봅니다. 1위에 뽑힌 폰트는 바로 다운로드 받을 수 있습니다.





출처: Finding the Best Programmer's Font


Good Programming Font Criteria

  • Crisp clear characters.
  • Extended characterset.
  • Good use of whitespace.
  • 'l', '1' and 'i' are easily distinguished
  • '0', 'o' and 'O' are easily distinguished
  • forward quotes from back quotes are easily distinguished -prefer mirrored appearance
  • Clear punctuation characters, especially braces, parenthesis and brackets

Fonts Reviewed (Best Listed First) (View All)(Name, Sizes, Type, Description, Download Info)

  1. Bitstream Vera Sans Mono (View Sample)
    • 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72
    • TrueType
    • Plenty of space between lines, dotted zeros, clean.
    • http://www.gnome.org/fonts/
  2. ti92pluspc (View Sample)
  3. Crystal (View Sample)
  4. Monaco (View Sample)
  5. Anonymous (View Sample)
  6. Andale Mono (View Sample)
  7. Raize (View Sample)
  8. ProFontWindows (View Sample)
  9. Sheldon (View Sample)
  10. BSU Kermit (View Sample)
  11. Lucida Sans Typewriter Regula (View Sample)
  12. Courier New (View Sample)
  13. Courier (View Sample)
    • 10, 12, 15
    • TrueType
    • Clean but spread out, no zero treatment.
    • Installed with Windows
  14. Lucida Consolev (View Sample)
  15. ProggyTiny (View Sample)
  16. ProggyClean (View Sample)
  17. Fixedsys (View Sample)
  18. Topaz-8 (View Sample)
    • 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72
    • TrueType
    • Amiga Topaz-8. Little space between lines, slashed zeros, fat/squat text
    • http://66.167.72.10/Topaz-8.zip
  19. Free Monospaced (View Sample)
  20. MS Mincho (View Sample)
    • 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72
    • TrueType
    • No Zero treatment, clear text
    • Installed with Windows or Office. Try Google.
  21. Hyperfont (View Sample)
  22. Squareshooter Mono (View Sample)
이 글의 관련글
일주일간 인기글
오늘 인기글

리눅스 계보

OS 2007/07/23 13:02 by 리버
http://futurist.se/gldt/ 에서 갖고온 리눅스 계보도(Linux Distro)입니다.



사용자 삽입 이미지
이 글의 관련글
    이글의 태그와 관련된 글이 없습니다.
일주일간 인기글
오늘 인기글

맥으로 인터넷 뱅킹이 불가능하다는 사실(?)을 오늘 알았다.

Thanks to Korean banks, I gotta buy another notebook

I'm using a Macbook Pro, and I've been generally enjoying the experience so far. (My favorite part is the super-smooth keyboard.) But I have to buy a new computer now, because I cannot use Korean internet banking service on my Macbook Pro.

It's an Intel-based machine, so by running Windows XP (which I do all the time with Bootcamp), I'm supposed to be able to use whatever internet banking service if I just give in and install all those damn Active X's, right? Wrong.

An important piece of program that's also downloaded is a "keyboard protection" program, which freezes the Mac's keyboard. My keyboard gets jammed and I can't type in anything.

I thought there was something wrong with my Mac, but it seems all Mac users have problem with Korean banking sites. In Korea, you can't do monetary transactions on your Mac. Which means, you can't buy anything on Apple Store if you're a Mac user. Funny, ain't it?
이 글의 관련글
일주일간 인기글
오늘 인기글

나는 회사일 떄문에 도스창을 즐겨쓰는데, 내가 작업하는 폴더의 경로가 길고, 깊이가 깊어서 일일이 폴더를 치기가 쉽지가 않다. 그래서 탐색기에서 원하는 폴더를 선택하고 여기에 오른쪽 마우스 버튼을 눌러서 도스창이라는 메뉴가 뜨게해서 작업을 한다. 방법은 간단한다.

  regedit.exe를 실행해서 레지스트리 편집기를 열고,
  My Computer\HKEY_CLASS_ROOT\Folder\shell
  -> 도스창 키 추가
  -> 도스창 키밑에 command key 추가
  -> command 키의 default value에 cmd.exe "%1" 지정

사용자 삽입 이미지


설정 끝. 탐색기에서 오른쪽 마우스를 클릭하면 "도스창"이란 메뉴가 추가된 걸 볼수가 있다.

사용자 삽입 이미지


도스창을 클릭하면 탐색기에서 선택된 폴더로 이동이 된 도스창이 실행된다.

사용자 삽입 이미지
이 글의 관련글
    이글의 태그와 관련된 글이 없습니다.
일주일간 인기글
오늘 인기글

IIS 7.0 소개

OS/IIS 2007/05/30 10:22 by 리버
우리회사는 아직도 IIS 4.0과 5.0으로 서비스를 제공하고 있다. 아마 '아직도 IIS 4.0(Windows NT)으로 서비스를 하는데가 있을까?' 의하해 할 수도 있겠지만 실제로 잘 사용하고 있다. 작년말부터 주요 서비스가 4.0에서 5.0으로 많이 바뀌긴 했지만 말이다. IIS 6.0은 아직 사용해보지 못한 상황에서 이제 7.0 얘기가 나오고 있다. 7.0 과연 뭐가 바뀐것인지 닷넷채널 특집을 인용한다.
 
출처: http://www.dotnetchannel.kr

닷넷채널 9호 특집으로는 이번에 대폭 변화된 IIS 7에 관한 내용으로 정했다. 점점더 Apache를 닮아가는 듯한 모습이지만 MS특유의 컨셉은 아주 잘 살렸다는 평을 듣고 있다.

이번글은 국내에 유일한 IIS분야의 Microsoft MVP인 송원석님이 제공해 주신 글로 아티클 하나하나에 상당한 정성을 쏟으시는 분이다.

IIS 7.0 인스퍼레이션 - 01

드디어 마이크로소프트의 새로운 운영체제 제품군인 윈도우 비스타가 각 에디션별로 정식 출시되었다. 그와 더불어 비스타 제품군을 통해 새롭게 제시된 다채로운 신기술들과 기반 구조들이 개발자들을 위시한 관련업계 종사자들의 폭넓은 주목을 받고 있는 중이다. 결과적으로 개발자들은 본인이 원하든 원하지 않든 간에 불가항력적인 변화의 물결을 이겨내야만 하는 시점이 다시 한 번 도래한 것이다. 그리고 본문을 시작으로 앞으로 계속될 몇 편의 글들을 빌어 논의하고자 하는 IIS 7.0 또한 기존 버전과 비교하여 비약적인 발전이 이루어 졌으며 최종적으로는 개발자들과 서버 관리자들의 작업 환경에 무지막지한 파급 효과를 불러일으킬 것이라는 것이 필자의 판단이다. 미상불 우리 웹 개발자들도 거대한 물결의 흐름을 벗어날 수는 없는 것이다. 먼저 이번 글에서는 기술적인 관점에서 IIS 7.0 의 보다 깊은 부분들을 살펴보기 위한 전단계로서, IIS 7.0 을 설치하는 전반적인 방법을 살펴보고자 한다. 지금까지 IIS 의 다른 버전들을 이미 능숙하게 다뤄오신 분들로서는 그리 별다를 것 없는 주제라고 생각하실 수도 있겠지만, 감히 단언컨데 그 생각은 절대로 오산이다. 아마도 본문을 다 읽고 나면 과거 IIS 3.0 에서 IIS 4.0 으로 업그레이드 하고 나서 느꼈던 것과 비슷한 기분을 경험하게 되는 분들이 분명히 계시리라고 믿는다.

그러면 본격적인 논의를 진행해 나가기에 앞서 먼저 현재 출시되어 있는 비스타와 코드네임 롱혼 서버 제품군의 개발 현황을 다시 한 번 되짚어보도록 하자. 2007 년 03 월 말 현재, 비스타 제품군은 이미 정식 출시되었으며, 비스타의 서버 제품군에 해당하는 코드네임 롱혼 서버는 바야흐로 베타 테스트와 개발이 한창 진행되고 있는 중이다. 그리고 현재 MSDN Subscription 을 통해서 다운로드 받을 수 있는 롱혼 서버의 가장 최신 버전은 x86 을 기준으로 Windows Server Longhorn February 2007 CTP 버전이다. 그런데 이 시점에서 한 번 주의 깊게 생각해봐야 될 부분이 있다. 너무나도 당연한 얘기겠지만 현재 개발이 한창 진행되고 있는 롱혼 서버에도 IIS 7.0 은 포함되어 있다. 그렇다면, 이 롱혼 서버에 포함된 IIS 7.0 은 개발이 완료된 것일까? 다시 말해 비스타에서 제공되는 IIS 7.0 과 롱혼 서버의 IIS 7.0 은 동일한 버전이며 단지 서버 전용으로 약간의 기능들만이 확장된 버전에 불과한 것일 뿐일까? 아쉽게도 - 사실은 너무나도 행복하게도 - 정답은 '그렇지 않다.' 가 맞다. 이는 필자가 IIS MVP 의 자격으로 참가할 수 있었던 금년도 2007 MVP Global Summit 에서 IIS 개발팀으로부터 직접 확인한 내용으로 롱혼 서버에 포함된 IIS 7.0 은 현재도 계속해서 많은 개선 작업과 조정 작업이 이루어지고 있는 중이다. IIS 개발팀의 말에 따르면 비스타에서 제공되는 IIS 7.0 은 롱혼 서버의 정식 출시 시점에 즈음하여 서비스 팩 등의 방법을 통해 새롭게 업그레이드 될 예정이라고 한다.

그래서 필자는 본문에서 IIS 7.0 의 설치를 살펴보기 위해 사용할 운영체제의 버전을 비스타가 아닌 롱혼으로 결정했는데, 사실 이 롱혼은 마이크로소프트가 제공하는 일반적인 채널을 통해서 얻을 수 있는 버전은 아니며 2007 MVP Global Summit 에서 IIS 프로덕트 유닛 프로그램 메니저인 크리스 애덤스 (Chris Adams) 씨로부터 제공받은 버전으로서 아마도 현재 시점에서 당분간은 롱혼 서버의 IIS 7.0 의 가장 최신 모습을 살펴볼 수 있는 버전이지 않을까 하는 생각이다. 그리고 한 가지 명확하게 밝히고 넘어갈 부분은 본문에서 이루어지는 모든 기술적 또는 비기술적인 논의는 필자의 개인적인 생각과 의견만을 반영하고 있을 뿐이며 마이크로소프트는 본문의 내용에 대한 그 어떠한 보증도 하지 않는 다는 점이다.


Windows Server (TM) Code Name "Longhorn" Build 6001.lh_srv_iis.070308-1900


비스타와 롱혼 서버에 IIS 7.0 을 설치하는 방법으로는 일반적으로 세 가지 정도의 방법이 알려져 있다. 먼저 비스타나 롱혼 서버가 자체적으로 제공해주는 사용자 인터페이스를 사용하여 설치하는 방법과 명령 프롬프트를 통한 설치 방법, 그리고 마지막으로 무인설치 방법이 바로 그것이다. 그리고 그 밖에도 다소 특별한 형태인 IIS 6.0 으로부터 업그레이드를 하는 시나리오도 생각해 볼 수 있을 것이다. 본문에서는 이미 설명했던 바와 같이 그 중 롱혼 서버상에서 서버 관리자 (Server Manager) 도구를 사용하여 IIS 7.0 을 설치하는 가장 보편적인 형태의 시나리오를 중점적으로 살펴볼 것이다. 나머지 다른 설치 방법들에 대해서는 먼저 IIS 7.0 에 어느 정도 친숙해진 뒤에 다시 한 번 자세하게 살펴보기로 하자. 아마도 개발자분들은 대부분 사용자 인터페이스를 사용하는 설치 방법을 사용하게 되겠지만, 다수의 서버를 동시에 관리하는 서버 관리자분들이나 일부 특수한 형태의 IIS 7.0 구성 설정을 고객들에게 제시할 필요가 있는 분들, 그리고 반복적으로 동일한 설치 작업을 빈번하게 수행하는 업무를 담당하는 분들과 같은 경우에는 명령 프롬프트를 통한 설치 방법이나 무인설치 방법도 사용자 인터페이스를 사용하는 설치 방법 못지 않게 대단히 중요한 비중을 차지할 것이다.


자유롭게 조립 가능한 모듈 기반의 웹 서버, IIS 7.0

IIS 7.0 은 사용자가 원하는 대로 조립이 가능한 모듈 기반의 웹 서버로 완벽하게 다시 설계되었다. 이 말을 새로운 버전의 소프트웨어들이 늘상 버릇처럼 얘기하는 단순한 홍보문구 정도로 가볍게 생각하지 말기 바란다. 문장과 단어가 의미하는 바 그대로 기반 구조부터 완벽하게 다시 설계되었기 때문이다. 그리고, 바로 이 점이야말로 IIS 7.0 의 가장 큰 특징인 동시에 다른 핵심적인 기능들을 전반적으로 지배하는 중핵이다. 그러면 모듈 기반의 웹 서버가 가져다주는 장점을 직접 느껴보기 위해 한 가지 간단한 예를 들어 보도록 하자. 멀리에서 거창한 사례를 찾을 것 없이 여러분들이 현재 관리하고 있거나 개발에 사용하고 있는 IIS 서버에서는 어떠한 인증 방법을 사용하고 있는지 각자 한 번 가만히 생각해보기 바란다. 아마 예상컨데 대부분 익명 접근이 가능하도록 설정된 상태에서 ASP.NET 의 폼 인증 정도를 구현하는 경우가 거의 대다수일 것이다. 개인적인 경험을 미루어 짐작해보면 내부적으로 엑티브 디렉터리를 통한 인증이 이루어지는 경우와 같이 다소 특별한 경우에도 Windows 통합 인증을 사용하거나 하는 경우는 매우 드물고, 실제 구현은 코드에 의존한 채 폼 인증과 유사한 구성을 크게 벗어나지 않도록 설계된 경우가 거의 대부분이다. 사실 아닌게 아니라 당장 필자만 해도 .NET Passport 인증과 같은 경우에는 사용해본 경험이 거의 전무하다.


IIS 6.0 의 '인증 방법' 대화 상자


이 이미지는 필자의 노트북에 설치된 IIS 6.0 에서 캡춰한 '인증 방법' 대화 상자의 모습이다. 그런데 한 번 재미있는 가정을 해보도록 하자. 만약 이 대화 상자에 존재하는 여러가지 기능들을 각각 분리하여 그 중 사용자가 설치하고자 하는 기능들만을 개별적으로 설치할 수 있다면 어떨까? 예를 들어서, '익명 인증' 기능은 가장 기본적인 기능이므로 언제나 설치되도록 하고, 그 밖에 'Windows 통합 인증' 기능이나 'Windows 도메인 서버의 다이제스트 인증' 기능, '기본 인증' 기능, 그리고 '.NET Passport 인증' 기능 등은 정말로 필요한 경우에만 개별적으로 설치할 수 있는 것이다. 만약 이런식의 설치가 가능했다면 전국에 존재하는 거의 대부분의 IIS 서버에는 '익명 인증' 기능만 설치되어 있는 상황이 벌어져 있지는 않았을까? 구성하고자 하는 IIS 서버가 이미지만을 호스트하기 위한 이미지 서버인 경우라던가, ASP.NET 웹 응용 프로그램이 운영될 서버이긴 하지만 폼 인증 이외의 인증이 이루어질 이유가 전혀 없다면 필자는 주저하지 않고 IIS 에서 '익명 인증' 이외의 기능들은 모조리 제거해 버릴 것이다. 왜냐하면 그 결과로 인해 얻을 수 있는 이득이 들어가는 노력에 비해 너무나도 크기 때문이다. 반갑게도 IIS 7.0 에서는 바로 이와 같은 식의 설치와 관리가 가능해졌다.

이러한 모듈 기반의 웹 서버가 갖고 있는 장점은 대단히 명확하다. 무엇보다도 사용자가 필요로 하는 기능 모듈들만을 조합하여 가볍고 안정적인 웹 서버를 구성하는 것이 가능해진다. 우리가 방금 살펴보았던 것과 같이 전혀 사용하지도 않는 기능들이 설치될 하등의 이유가 없는 것이다. 물론 구 버전의 IIS 에서도 어느 정도까지는 설치할 기능들을 사용자가 선택하는 것이 가능했지만 대단히 제한적이었으며 대부분의 기능들은 그나마 선택의 여지도 존재하지 않았다. 그 가장 좋은 사례가 위와 같은 인증 기능들과 ISAPI 관련 기능들, 그리고 CGI 관련 기능 등이다. 극단적으로 말해서 이와 같은 기능들을 설치하지 않을 수 있는 방법은 오직 IIS 그 자체를 설치하지 않는 길 뿐이었다. 어떤 분들은 이렇게 반문할지도 모른다. IIS 6.0 에서는 비록 ISAPI 관련 기능들과 CGI 기능이 설치되기는 하지만 기본적으로는 비활성화 되어 있으므로 그 점만 놓고 본다면 그다지 달라진 점도 없지 않느냐라고 말이다. 그러나, 일단 설치가 되고 사용되지 않는 것과 아예 설치조차 되지 않는 것에는 많은 차이점이 존재한다. 즉, 웹 서버에 어떤 임의의 기능이 설치는 되어 있지만 비활성화 되어 있다고 가정해본다고 할 때, 그래도 여전히 해당 기능은 서버의 메모리에 로드되며 비교적 적은 양에 불과하겠지만 어느 정도까지는 별다른 의미도 없는 헛된 CPU 싸이클을 소모할 수 밖에 없다. 더군다나 이 기능의 코드 블럭은 엄연히 웹 서버의 요청 파이프라인상에 존재하게 되므로 결과적으로 성능 감소로 이어질 수 밖에 없는 것이다. 간단하게 말해서 모듈이 십 여개 내외만 올라가 있는 웹 서버와 수 십 여개의 모듈이 올라가 있는 웹 서버 중에서 어떤 웹 서버의 성능이 더 뛰어날지는 물어볼 필요도 없는 것이다. 그리고, 지금까지 얘기한 내용들보다도 더 중요한 점은 악의적인 사용자로부터 공격받을 수 있는 잠재적인 접근점이 여전히 남아있게 되며 사용하지도 않는 기능으로 인한 패치와 업데이트 작업 등의 서버 관리가 뒤따르게 된다는 점이다.

그렇다면 남은 문제는 과연 얼마나 다양한 모듈들이 얼마나 많이 제공되는지가 관건일 것이다. 먼저 각자 아래의 이미지를 클릭하여 큰 원본 이미지를 한 번 자세히 살펴보기 바란다. 참고로 이 이미지는 IIS 개발팀의 공식 사이트인 IIS.net (http://www.iis.net/) 으로부터 링크해 온 것으로 IIS 7.0 에서 기본적으로 제공해주는 모듈들을 체계적으로 잘 정리하여 일목요연하게 나타내주고 있다. IIS 7.0 은 여러분들이 이미지를 통해서 살펴볼 수 있는 바와 같이 웹 서버 코어와 약 40 여 개의 모듈들로 구성된다. 그리고 기본적으로 제공되는 모듈의 대부분은 기존의 기능들이 모듈화 된 것이지만 요청 필터링 (Request Filtering) 모듈과 같이 외부의 기능이 모듈화되어 흡수된 경우도 존재한다. 고무적인 사실은 이 각각의 모듈들이 서드 파티 모듈이나 커스텀 모듈로 대체되거나 동시에 실행될 수 있을 뿐만 아니라, C 나 C++ 언어에 익숙하지 않은 ASP.NET 개발자들도 HTTP 모듈의 형태로 커스텀 모듈을 개발하여 C 나 C++ 언어를 사용하여 작성한 네이티브 서버 API 모듈과 동일한 형태와 동일한 방식으로 사용할 수가 있다는 점이다. 바야흐로 ASP.NET 개발자가 곧 IIS 서버 개발자인 시대가 다가온 셈이다. 이 커스텀 모듈 개발에 관해서는 나중에 다시 자세하게 살펴보기로 한다.


IIS 7.0 설치 구성 요소


이제 필요한 기반 지식이 어느 정도 갖추어졌으므로 실제의 설치 작업을 한 단계씩 살펴도록 하자. 롱혼 서버에서 IIS 7.0 의 설치와 관련된 모든 작업은 새로운 관리 도구인 서버 관리자 (Server Manager) 를 통해서 이루어진다. 비스타를 생각하고 제어판에서 'Windows 기능 사용/사용 안 함' 을 실행시켜봐도 역시 서버 관리자가 실행된다. 서버 관리자는 그 이름이 뜻하는 바 그대로 롱혼 서버를 관리하기 위한 기능들을 제공해주는 도구로, 얼핏 생각하기에는 2003 제품군에서 제공해주던 '사용자 서버 관리' 도구와 비슷한 것처럼 보일 수도 있겠지만 그 내용과 질적인 면에서 비교가 되지 않는 강력한 도구다. 물론 IIS 7.0 을 관리하기 위한 가장 중추적인 도구는 인터넷 정보 서비스 관리자이지만 서버 관리자는 조금 더 포괄적인 시점에서 롱혼 서버 전체를 관리할 수 있게 도와주며, 롱혼 서버를 설치하고 나서 로그인을 하면 기본적으로 자동 실행된다. 아니면 시작 메뉴나 빠른 실행의 아이콘 등을 이용하여 실행시킬 수도 있다. 다음은 필자의 가상 서버에 설치된 롱혼 서버에서 서버 관리자를 실행시킨 모습이다. 본문에 첨부된 이미지 대부분은 마우스로 클릭을 하면 큰 크기의 이미지를 볼 수 있으므로 참고하기 바란다.


롱혼 서버 관리자 (Server Manager) : 메인 화면


이 이미지에서 볼 수 있는 것처럼 서버 관리자의 좌측 패인에는 각각의 관리 요소들에 대한 카테고리들이 트리뷰 형태로 제공되며 그 우측 패인에는 좌측 트리뷰에서 선택된 항목에 대한 구체적인 정보와 실제 작업 처리를 위한 링크들이 제공된다. 예상컨데 서버 관리가 주업무이신 분들은 앞으로 이 화면을 지겹도록 보게될 것이다. 좌측의 트리뷰에서 Roles 노드를 선택해보자. 그러면 다음과 같은 화면이 나타나는데, IIS 7.0 의 설치를 위해서는 여기에서 롱혼 서버가 제공해주는 17 가지 종류의 역할들 중 하나인 Web Server (IIS) 역할을 추가해야만 한다. 현재는 서버에 추가되어 있는 역할이 하나도 없기 때문에 도움이 될만한 정보가 거의 전무하지만 일단 어떤 역할이 추가되고 나면 이 화면에 다양한 정보들이 출력된다. 이 정보들에 대해서는 역할 추가 작업이 모두 마무리되고 난 뒤에 다시 한 번 자세히 살펴보도록 하겠다. 자 그러면 이제 'Add Roles' 링크를 클릭하여 '역할 추가 마법사 (Add Roles Wizard)' 를 실행시킨다.


롱혼 서버 관리자 (Server Manager) : Roles 노드 메인 화면


역할 추가 마법사의 첫 화면에서는 그저 약간의 설명과 간단한 주의사항만 나타날 뿐이다. 한 번 부담없이 읽어보고 다음 단계로 이동한다. 'Do not show this page again' 체크 박스를 체크하여 다음부터는 이 화면이 나타나지 않게 설정하는 것도 좋을 것이다.


역할 추가 마법사 (Add Roles Wizard) : Before Yoe Begin


다음 단계는 서버에 추가할 역할들을 선택하는 단계다. 각각의 항목들을 한 번 천천히 살펴보기 바란다. 너무나 당연한 얘기겠지만 우리들은 그 중 Web Server (IIS) 역할을 체크하여 선택해야 한다.


역할 추가 마법사 (Add Roles Wizard) : Select Server Roles


그런데 이 시점에 대단히 흥미로운 일이 한 가지 발생한다. 비록 표면적으로는 조그마한 대화 상자가 하나 나타나는 것에 불과하지만 이것이 내부적으로 시사하는 바는 꽤나 복잡하다. Web Server (IIS) 역할을 체크하여 선택하면 다음과 같은 대화 상자가 나타나는데, 이 대화 상자의 내용은 Windows 프로세스 활성화 서비스라는 일련의 기능 집합을 함께 설치하지 않으면 웹 서버를 설치할 수 없다는 경고성 메시지이다. 실제로도 이 기능의 설치에 동의하지 않으면 Web Server (IIS) 역할의 설치를 계속 진행할 수가 없게 된다. 눈치 빠르신 분들은 이미 알고 계시겠지만 Windows 프로세스 활성화 서비스 (이하 WAS) 는 앞에서 살펴본 설치 모듈 이미지의 가장 하단 부분에서 이미 살펴본 것이다. 이 WAS 는 도대체 어떤 역활을 하는 것일까?


역할 추가 마법사 (Add Roles Wizard) : Windows Process Activation Service


이 기능은 서비스의 형태로 구현되어 있으며 과거 버전에서 World Wide Web 게시 서비스 (W3SVC 서비스 또는 WWW 서비스) 가 담당하던 응용 프로그램 풀 구성 설정과 작업자 프로세스 관리를 대신 처리해준다. WAS 의 가장 큰 특징은 WWW 서비스와는 달리 HTTP 프로토콜 이외에도 TCP 나 명명된 파이프와 같은 비 HTTP 프로토콜까지 지원해주며, 이러한 프로토콜 모두에 대하여 같은 구성 설정 방법과 프로세스 모델을 사용할 수 있게 해준다는 점이다. 한 가지 주의해야 할 점은 IIS 는 WAS 에 종속되지만 WAS 는 IIS 에 종속되지 않는다는 점이다. 예를 들어서 이 WAS 는 WCF 호스팅을 위한 기반 구조 중 하나로 사용되기도 하는데 (WCF 호스팅 형태에는 1. WAS 환경, 2. 콘솔 또는 윈폼 스타일의 .exe 파일 형태, 그리고 3. 서비스 형태가 있다.), 문제는 비스타의 에디션에 따라 IIS 의 설치가 불가능한 경우가 존재한다는 것이다. 즉, 비스타 제품군 중에서 스타터 에디션과 홈 베이직 에디션에는 IIS 의 설치가 불가능하며, 따라서 만일 WAS 가 IIS 에 종속적이었다면 이 두 가지 에디션에서는 WAS 환경하에 호스팅되는 WCF 의 구현이 어려웠을 것이다. 그러나 비스타 스타터 에디션과 홈 베이직 에디션에서도 WAS 는 IIS 와는 독립적으로 설치가 가능하며 WCF 를 설치할 때 필요에 따라 자동적으로 설치되므로 사용자가 직접 명시적으로 설치해줄 필요도 없는 것이다. 한 가지 재미있는 것은 이와 같은 경우에도 동시 처리 제한값이 존재한다는 점인데 그 값은 3 개 이다. WAS 에 대한 보다 자세한 정보는 마이크로소프트 테크넷에 게제된 관련 문서를 참고하기 바란다. 이제 대화 상자에서 'Add Required Features' 버튼을 클릭하면 다음과 같이 Web Server (IIS) 역할이 선택된다.


역할 추가 마법사 (Add Roles Wizard) : Select Server Roles


다음 단계로 이동한다.