10-2-1. 웹서버 기본설치 및 구성
윈도우 서버 2003을 특별한 설정변경없이 기본설치를 이용해 설치하였다면 IIS는 설치되지 않는다.
“프로그램추가/제거àWindows구성요소à응용프로그램서버à인터넷정보서비스(IIS)로 접근하여 IIS를 설치할 수 있다.
IIS를 설치한 후 인터넷 익스플로어를 이용하여 웹서버의 IP주소로 접근해 보았다. <그림10-2>과 같이 ‘준비중’이라는 메시지를 보여주는 페이지를 보여줌을 알 수 있다.
<그림10-2. 기본설치된 웹서버에 웹브라우저를 이용하여 접근한 화면>
IIS를 컴퓨터에 설치하고 난후 IIS가 서비스할 기본 위치는 C:\Inetpub 폴더이다. 웹서버를 위한 폴더는 C:\Inetpub하위폴더인 wwwroot 폴더이다<그림10-3>
<그림10-3. IIS의 기본 디렉터리 구성>
웹프로그래머가 새로운 웹사이트를 개발하였다면 그 파일들을 저장할 위치도 바로 이 위치이다. 이 위치에 당신이 만든 웹페이지를 저장하면 기본 웹사이트에서 여러분의 홈페이지를 서비스해 줄 것이다.
지금부터 웹사이트의 등록정보를 통해서 관리를 위해 필요한 사항들을 챙겨보도록 하자. 웹사이트의 등록정보로 접근하는 방법은 두 가지가 제공된다. 인터넷 서비스 관리자 (ISM)를 이용하는 방법과 관리웹페이지를 이용하는 방법이다.
10-2-1-1. IIS 관리도구
관리도구메뉴에서 인터넷 서비스 관리자를 실행한다. 아래의 <그림10-4>와 같은 화면이 열린다.
<그림10-4. 인터넷 서비스 관리자 (ISM) >
이 관리도구를 이용하여 당신은 새로운 웹사이트를 추가하고 사이트의 각종 설정들을 변경하는 작업을 할 수 있다. 또 다른 방법은 웹인터페이스를 통해서 접근할 수 있는 관리웹페이지를 이용하는 방법이 있다. 관리웹페이지를 이용하기 위해서는 IIS설치시에 관리웹페이지 옵션을 선택해 주어야 한다. <그림10-4>의 왼쪽패널에서 웹사이트 아래에 있는 Administration 을 마우스 오른쪽클릭하여 ‘속성’을 열었다.
<그림10-5. 관리 웹 사이트 접근>
관리페이지의 SSL포트를 확인하고 (예제에서는 8098이다) 웹브라우저에서 https://192.168.0.16:8098 을 입력했다.
<그림10-6. 관리 웹 사이트 1>
관리 웹사이트가 열린다. 서버이름, 관리자설정 등 다양한 설정을 할 수 있도록 인터페이스를 지원하고 있다. 이 관리 웹사이트를 이용하여 인터넷 서비스 관리자를 통해서 할 수 있는 작업들을 할 수 있다. 이전 버전에 비해 인터페이스가 상당히 깔끔해 지고 기능도 추가되었지만 IIS서버의 관리를 위해 관리웹페이지는 잘 이용되지 않는다. 터미널 서버를 통한 원격관리가 많이 이루어지는데 그렇다면 쓰지 않는 관리 웹페이지가 열려있을 필요가 없다. IIS를 설치할 때 사용여부를 판단하여 불필요하게 설치하지는 않도록 하자.
10-2-1-2. 웹사이트 등록정보
웹사이트의 등록정보를 열어보았다. 여러 개의 탭이 보이는데, 먼저 ‘문서’탭을 열어 보았다. 4개의 파일의 목록이 보인다.
<그림10-7. 웹사이트 등록정보 – 문서 탭>
웹서비스도 결국 클라이언트가 서버에게 자신이 원하는 ‘파일’을 요청하고 웹서버는 사용자가 파일에 접근할 권한이 있는지 확인한 다음 ‘파일’을 넘겨주는 작업을 하는 것이다. 복잡한 웹어플리케이션들이 구동되는 요즈음의 웹서비스에 비할바는 아니지만 단순히 생각하면, 결국 파일서비스라는 얘긴데 다만 HTML (Hyper Text Markup Language) 문서형식의 파일을 웹브라우저가 받아서 화면에 뿌려주는 형태로 동작하게 된다. 하지만 보통 우리가 어떤 웹사이트에 접근할 때 http://www.secure.pe.kr 이라는 URL을 통해서 접근할 뿐, 직접 http://www.secure.pe.kr/default.htm 이라는 형태로 주소를 사용하지는 않는다. 그렇다면 웹서버 입장에서는 사용자가 특별한 파일을 요청하지 않고 디렉터리에 접근했을 때 기본적으로 제공할 파일이 정의되어 있어야 할 것이다. 웹사이트 등록정보의 ‘문서’탭은 그러한 파일이름을 지정해 둔 것이다. 웹서버는 해당 디렉터리에서 ‘문서’탭에 있는 순서대로 파일을 검색하여 사용자의 요청에 응답한다. 보통 커뮤니티 사이트로부터 공짜로 얻게 되는 10~20MB정도의 홈페이지 공간을 이용할 때 ‘루트 폴더에 index.htm 파일이 있어야 합니다.’ 등의 안내문을 보는 경우가 있을 것이다. 바로 이러한 파일이 제공하는 웹페이지를 가리켜서 ‘홈페이지’라고 부른다. IIS에서의 기본파일의 이름은 ‘default.htm”이다.
다음에는 ‘웹사이트’탭을 열어보자. 웹사이트 확인, 연결, 로깅사용이라는 세가지 화면으로 구성되어 있는데 웹사이트 확인을 보면 TCP포트, SSL포트 등의 정보를 확인할 수 있다. 기본적으로 웹서버는 TCP 80번 포트에서 서비스된다. 우리가 보통 웹브라우저를 실행하고 http://www.secure.pe.kr 라는 URL(Uniform Resouce Locator)을 이용해서 접근했을 때 실제로는 http://www.secure.pe.kr:80 으로 접근하는 것과 동일하다. ‘80번 포트르 http 요청을 합니다’ 라는 뜻이 된다. 만일 당신이 웹서비스의 TCP포트를 임의로 80번이 아닌 8000번으로 바꾸었다고 가정하면 클라이언트는 더 이상 http://www.secure.pe.kr라는 URL을 통해서 해당 웹서버에 접근할 수 없다. 대신에 http://www.secure.pe.kr:8000 이라는 URL을 이용해야만 접근이 가능하다다. SSL포트 443번은 http 가 아닌 https 를 이용해서 접근할 때 서비스되는 포트이다. SSL서버의 설정은 뒤에서 다룬다.
<그림10-8. 기본 웹 사이트 등록정보 – 웹사이트 탭>
IP주소 항목도 중요한 의미를 가진다. 이것이 잘못 설정되어 있으면 아예 웹페이지가 열리지 않는 경우가 생긴다. 기본적으로 “(지정하지 않은 모든 IP)”라고 되어 있다. 웹서버의 IP Address로 192.168.10.1과 192.168.10.2 이렇게 2개의 IP가 할당되었다고 가정했을 때 “지정하지 않은 모든 IP “라는 기본설정을 가지고 있으면 2개중 어떠한 IP Address로 찾아오는 http요청이라도 이 웹사이트는 정상적인 응답을 한다. 하지만 당신이 특별히 “지정하지 않은 모든 IP” 대신에 192.168.10.1과 같이 IP Address를 지정하였다면 더 이상 192.168.10.2 로 오는 http 요청은 이 웹사이트가 응답하지 않는다. 오직 192.168.10.1 로 오는 요청에만 응답을 할 뿐이다. 웹사이트가 처리하는 특별한 IP Address를 지정해야 할 필요가 있다거나, 하나의 웹서버에서 여러 개의 웹사이트가 동작하고 있는 경우에만 변경하도록 한다.
나머지는 보통 기본설정을 사용한다. 기본적으로 IIS는 로깅을 이용한다. W3C 확장 로그 파일 형식이 기본인데 계정로깅을 이용하려면 반드시 이 로그형식을 사용해야 한다. [등록정보]를 사용하여 로그파일의 경로, 로깅되는 정보등을 변경해 줄 수 있다.
다음은 ‘홈 디렉터리’탭을 열어보자<그림10-9> 꼭 필요한 몇가지 설정들을 담고 있다.
<그림10-9. 웹사이트 등록정보 – 홈디렉터리 탭>
먼저 가장 위의 메뉴에서는 3개의 라디오 버튼으로 구성된 메뉴들을 볼 수가 있는데, 이것은 웹서버의 웹사이트가 웹서비스를 하는 파일이 어디에 위치해 있는지를 지정해 주는 일을 한다. 웹서버는 세가지 경우의 서비스를 할 수 있는데, 아래의 <그림10-10>을 참고해서 설명한다.
<그림10-10. IIS의 웹 서비스 디렉터리 구성>
개념적으로 이해할 필요가 있다. <그림10-10>에서 보면 물리적인 웹서버는 하나이다. 이 하나의 웹서버는 여러 개의 복수 웹사이트를 호스팅 할 수 있다. IIS설치와 함께 구성되어 있는 ‘기본 웹 사이트’ 단지 웹서버가 서비스하는 하나의 웹사이트일 뿐이다. 웹사이트는 각각 독립적인 컨텐츠를 가진 다른 사이트와는 아무런 연관성이 없는 독립적인 기능을 한다. 만일 하나의 웹 서버가 3개의 웹사이트를 서비스하고 있다면 이론적으로는 세대의 웹서버가 각각 하나씩의 웹 사이트를 서비스하고 있다고 생각해도 좋다. 이들 웹사이트들을 클라이언트가 요청했을 때 웹서버는 클라이언트가 원하는 파일을 넘겨줘야 하는데, 이때 각 웹사이트들은 클라이언트가 원하는 컨텐츠를 어디서 가져올 것인지 3가지 메뉴에 의해 선택된다.
기본설정은 ‘이 컴퓨터에 있는 디렉터리’로 되어 있다. 그리고 아래쪽의 ‘로컬 경로’에서는 D:\Inetpub\wwwroot 라고 되어 있는데, 이것은 클라이언트가 이 웹사이트로 요청을 보내면 D:\Inetpub\wwwroot 위치에서 서비스할 파일을 찾아서 보내주겠다는 것을 의미한다. 만일 이 사이트의 주소가 www.secure.pe.kr 로 되어 있었다면 클라이언트가 http://www.secure.pe.kr URL을 이용해서 http 요청을 보냈을 때 이 웹서버는 D:\Inetpub\wwwroot 위치에서 앞에서 보았던 ‘문서’탭의 목록을 순서대로 찾는다. 이 위치에 default.htm이라는 파일이 있었다면 이 파일을 클라이언트에게 전송하게 될 것이다.
두번째 옵션인 ‘다른 컴퓨터에 있는 공유디렉터리’를 사용하면 이 웹사이트의 컨텐츠가 웹서버에 저장된 것이 아니라 네트워크에 있는 다른 서버에 저장되어 있는 경우이다. 예를 들어 웹사이트의 컨텐츠가 blueapple 이라는 서버의 secure 라는 공유폴더에 저장되어 있다면 당신은 \\blueapple\secure 라는 UNC Path를 이용하여 지정해 주어야 한다.
마지막 옵션인 ‘URL로 리디렉션’을 선택하면 이 웹사이트로 들어오는 요청을 다른 웹사이트로 전환시키는 것이 가능하다. 사용용도는 응용하기 나름이다. 이를 테면, 클라이언트가 접속해야 되는 웹페이지가 너무 길어서 사용자가 접근하기가 어렵다거나, 회사의 도메인 이름이 여러 개인데 하나의 웹사이트로 집중시킨다거나 하는 경우에 쓸 수 있다.
기본적으로 IIS의 “URL리디렉션”기능은 클라이언트이 웹브라우저의 주소창에 고정식 주소를 지원하지는 않는다. 예를 들어 http://www.secure.pe.kr 웹사이트가 http://forgarden.tistory.com 으로 URL 리디렉션이 되고 있을 때, 클라이언트가 웹브라우저의 주소창에 http://www.secure.pe.kr 을 입력해서 접근하게 되면 웹서버에서는 http://forgarden.tistory.com 으로 URL리디렉션을 시키게 되고, 역시 클라이언트의 주소창에는 주소가 http://forgarden.tistory.com 으로 변환되는 것을 보게 된다.
만일 클라이언트의 웹브라우저의 주소창이 고정되도록 하고자 한다면 아래와 같은 방법을 사용해 볼 수 있다. http://www.secure.pe.kr 웹사이트에 ‘이 컴퓨터에 있는 디렉터리’ 로 설정을 한 다음, 해당 위치에 아래의 박스에 있는 것과 같은 내용을 담은 default.htm 파일을 저장하는 것이다.
<HTML>
<HEAD>
<TITLE>안녕하세요. Windows Network 에 오신 것을 환영합니다</TITLE>
</HEAD>
<FRAMESET ROWS="100%,*" border=0>
<FRAME name="mainpage" src="http://forgarden.tistory.com”>
</FRAMESET>
</HTML> |
<그림10-11. 고정 URL 을 지원하기 위한 Html 문서>
<그림10-11>에서 간단한 html 문서가 만들어져 있는데, 이것은 웹페이지에 상/하 프레임으로 나누고 하위의 프레임은 안 보이도록 감추고, 상위의 프레임에는 실제 URL 리디렉트할 주소를 기록했다. 그러면 실제로 www.secure.pe.kr 웹사이트는 오직 하나의 파일인 default.htm 만 있으면 되는 것이고 사용자들은 http://forgarden.tistory.com 에 접근을 하겠지만, default.htm 파일의 상위프레임에서만 움직이는 것이기 때문에 웹브라우저에서 보이는 URL은 고정이 된다. 이것은 웹서버의 URL리디렉션 기능을 사용한 것이 아니다. 단지 html 문서상의 태그를 통해 구현할 수 있는 기능일 뿐이다.
<그림10-11>에서 보면 ‘홈디렉터리’탭에는 추가로 ‘응용 프로그램’설정이 있는데, 이것은 워드, 엑셀 등의 어플리케이션과는 구분되어 보통 ‘애플리케이션’ 혹은 ‘웹애플리케이션’이라고 부르고 있다. 웹 애플리케이션이라고 하면 asp, cgi, php 등의 프로그램을 일컫는 것이다. 이러한 웹 애플리케이션은 클라이언트의 요청을 서버의 데이터베이스에 SQL문을 이용해서 쿼리하여 답을 얻은 다음 다시 html 문서로 변환하여 클라이언트에 제공하는 등 클라이언트의 요청이 웹서버와 상호작용할 수 있도록 해 주는 서버에서 동작하는 프로그램들(Server Side Program)이다. 보통 IIS에서는 ASP, Apache에서는 PHP 로 프로그램되는 것이 일반적이다. CGI 역시 유명한 웹 애플리케이션 프로그램중의 하나였지만 점점 더 사라져가는 추세인 듯 하다. IIS에서는 기본적으로 ASP, ASP.NET 등의 프로그램이 동작한다. CGI, PHP등을 구동시키려면 Active Perl ( http://www.activeperl.com )등의 프로그램을 별도로 설치해 주어야 한다.
이러한 프로그램들을 어떠한 파일(필터라고 부른다)이 구동시켜줄 것인지를 지정하는 것이 이 메뉴에서 이루어진다. ‘홈 디렉터리’탭의 중간에 위치한 ‘스크립트 소스 액세스’ ‘읽기’’쓰기’’디렉터리 검색’등은 특별한 경우가 아니면 건드리지 말아야 한다. ‘읽기’가 기본설정인 것을 확인하자. 각각의 옵션에 대해서 필요하다면 IIS도움말을 참고하라. 많은 정보를 얻을 수 있을 것이다.