IIS에서 정적 웹 사이트 빌드
키스 뉴먼과 로버트 맥머레이
이 문서에서는 IIS 웹 서버를 설치하고 정적 콘텐츠를 제공하도록 구성하는 프로세스를 안내합니다. 정적 콘텐츠는 저장된 것과 정확하게 사용자에게 전달되는 웹 페이지(HTML)입니다. 반면, 동적 콘텐츠는 ASP.NET, 클래식 ASP 또는 PHP 애플리케이션과 같은 웹 애플리케이션에서 생성됩니다. 정적 콘텐츠는 모든 사용자에 대해 동일한 정보를 표시합니다. 동적 콘텐츠는 사용자 이름과 같은 사용자별 정보를 표시할 수 있습니다.
정적 콘텐츠 웹 서버는 HTML 웹 사이트를 지원하기 위한 IIS의 가장 기본적인 구성입니다. 정적 콘텐츠 웹 서버를 사용하여 내부 또는 외부(공용) 웹 사이트를 호스트할 수 있습니다. IIS 8을 설치할 때 기본 설치는 정적 콘텐츠 웹 서버를 지원하는 데 필요한 모든 IIS 모듈을 제공합니다. 기본 설치에는 정적 HTML 파일, 문서 및 이미지를 제공하는 기능이 포함됩니다. IIS 8은 정적 콘텐츠 서버에 대한 기본 문서, 디렉터리 검색, 로깅 및 익명 인증을 지원합니다.
필수 조건
이 자습서를 최대한 활용하려면 다음 운영 체제 중 하나를 실행하는 컴퓨터에 액세스할 수 있어야 합니다.
- Windows Server® 2012
- Windows® 8
1단계: IIS 웹 서버 설치
Windows UI(사용자 인터페이스)를 사용하거나 명령줄에서 이 절차를 수행할 수 있습니다.
UI를 사용하여 Windows Server 2012에 IIS를 설치하려면
시작 페이지에서 서버 관리자 타일을 클릭한 후 을 클릭합니다.
서버 관리자에서 대시보드를 선택하고 역할 및 기능 추가를 클릭합니다.
역할 및 기능 추가 마법사의 시작하기 전 페이지에서 다음을 클릭합니다.
설치 유형 선택 페이지에서 역할 기반 또는 기능 기반 설치를 선택하고 다음을 클릭합니다.
대상 서버 선택 페이지에서 서버 풀에서 서버 선택과 컴퓨터의 이름을 차례로 선택하고 다음을 클릭합니다.
서버 역할 선택 페이지에서 웹 서버(IIS)를 선택한 후 다음을 클릭합니다.
기능 선택 페이지에서 미리 선택된 기능을 확인하고 다음을 클릭합니다.
웹 서버 역할(IIS) 페이지에서 다음을 클릭합니다.
역할 서비스 선택 페이지에서 미리 선택된 역할 서비스를 적어두고 다음을 클릭합니다.
참고 항목
정적 콘텐츠 웹 서버에 대한 IIS 8 기본 역할 서비스를 설치합니다.
설치 선택 확인 페이지에서 선택 사항을 확인하고 설치를 클릭합니다.
설치 진행률 페이지에서 웹 서버(IIS) 역할 및 필요한 역할 서비스의 설치가 정상적으로 완료되었는지 확인하고 닫기를 클릭합니다.
IIS가 올바르게 설치되었는지 확인하려면 웹 브라우저에 다음을 입력합니다.
http://localhost
기본 IIS 시작 페이지가 표시됩니다.
UI를 사용하여 Windows 8에 IIS를 설치하려면
시작 페이지에서 제어판을 입력한 후 검색 결과에서 제어판 아이콘을 클릭합니다.
제어판에서 프로그램, Windows 기능 사용/사용 안 함을 차례로 클릭합니다.
Windows 기능 대화 상자에서 인터넷 정보 서비스 클릭한 다음 확인을 클릭합니다.
이 작업은 IIS 8 기본 기능을 설치합니다. 정적 콘텐츠 웹 서버에 대한 기본 기능만 설치합니다.
IIS가 올바르게 설치되었는지 확인하려면 웹 브라우저에 다음을 입력합니다.
http://localhost
기본 IIS 시작 페이지가 표시됩니다.
명령줄을 사용하여 IIS를 설치하려면
관리자 권한 명령 프롬프트 또는 스크립트에 다음 명령을 입력합니다.
Start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
2단계: 웹 사이트 추가
이 단계에서는 IIS 관리자 UI를 사용하거나 명령줄 창에서 Appcmd.exe 명령을 실행하여 IIS에 웹 사이트를 추가하는 방법을 설명합니다.
UI를 사용하여 웹 사이트를 추가하려면
IIS 관리자를 엽니다.
- Windows Server 2012의 경우 시작 페이지에서 서버 관리자 타일을 클릭한 다음 확인을 클릭합니다. 서버 관리자 도구 메뉴를 클릭한 다음 인터넷 정보 서비스(IIS) 관리자를 클릭합니다.
- Windows 8의 경우 시작 페이지에서 제어판 입력한 다음 검색 결과에서 제어판 아이콘을 클릭합니다. 제어판 화면에서 시스템 및 보안, 관리 도구, IIS(인터넷 정보 서비스) 관리자를 차례로 클릭합니다.
연결 창의 트리에서 사이트 노드를 마우스 오른쪽 단추로 클릭한 후 웹 사이트 추가를 클릭합니다.
웹 사이트 추가 대화 상자의 사이트 이름 상자에 웹 사이트의 이름을 입력합니다.
애플리케이션 풀 상자에 나와 있는 것과 다른 애플리케이션 풀을 선택하려면 선택을 클릭합니다. 애플리케이션 풀 선택 대화 상자의 애플리케이션 풀 목록에서 애플리케이션 풀을 선택하고 확인을 클릭합니다.
실제 경로 상자에 웹 사이트 폴더의 실제 경로를 입력하거나 찾아보기 단추(...)를 클릭하여 파일 시스템을 탐색하여 폴더를 찾습니다.
이전 단계에서 입력한 실제 경로가 원격 공유에 있는 경우 연결을 클릭하여 경로에 액세스할 수 있는 권한이 있는 자격 증명을 지정합니다. 특정 자격 증명을 사용하지 않는 경우 연결 계정 대화 상자에서 애플리케이션 사용자(통과 인증) 옵션을 선택합니다.
유형 목록에서 웹 사이트의 프로토콜을 선택합니다.
. 웹 사이트의 고정 IP 주소를 지정해야 하는 경우(기본적으로 할당되지 않은 모든 주소로 설정됨) IP 주소 상자에 IP 주소를 입력합니다.
포트 텍스트 상자에 포트 번호를 입력합니다.
필요에 따라 호스트 헤더 상자에 웹 사이트의 호스트 헤더 이름을 입력합니다.
사이트를 변경할 필요가 없으며 웹 사이트를 즉시 사용할 수 있도록 설정하려면 웹 사이트 즉시 시작 확인란을 선택합니다.
확인을 클릭합니다.
명령줄을 사용하여 웹 사이트를 추가하려면
관리자 권한 명령 프롬프트 또는 스크립트에서 다음 구문을 사용합니다.
appcmd add site /name:
문자열 /id:
uint 문자열 /bindings:
/physicalPath:
참고 항목
이 구문이 작동하려면 다음 디렉터리에 있거나 경로 %windir%\system32\inetsrv
에 디렉터리가 있어야 합니다.
변수 name
는 이름이며, 변수 id
는 사이트에 할당하려는 양의 정수입니다. 변수 name
이며 id
appcmd를 사용하여 사이트를 추가하는 데 필요한 유일한 변수입니다. 그러나 사이트 및 physicalPath
특성에 대한 bindings
값을 지정하지 않고 사이트를 추가하면 사이트를 시작할 수 없습니다.
변수 physicalPath
는 파일 시스템에서 사이트 콘텐츠의 절대 경로입니다.
변수 bindings
에는 사이트에 액세스하는 데 사용되는 정보가 포함됩니다. 형식 protocol/IP_Address:port:hostheader
이어야 합니다. 예를 들어 웹 사이트의 경우 바인딩 http/*:85:
은 모든 IP 주소 및 도메인 이름(호스트 헤더 또는 호스트 이름이라고도 함)에 대해 포트 85 에서 HTTP 요청을 수신하도록 사이트를 구성합니다. 반면에 바인딩 http/*:85:marketing.contoso.com
은 모든 IP 주소 및 도메인 이름 marketing.contoso.com 포트 85에서 HTTP 요청을 수신 대기하도록 웹 사이트를 구성합니다.
콘텐츠가 있고 포트 85에서 c:\contoso
모든 IP 주소 및 marketing.contoso.com 도메인 이름에 대한 HTTP 요청을 수신 대기하는 ID가 2인 contoso라는 웹 사이트를 추가하려면 명령 프롬프트에서 다음을 입력합니다.
appcmd add site /name:contoso /id:2 /physicalPath:c:\contoso /bindings:http/*:85:marketing.contoso.com
3단계: 익명 인증 구성
익명 인증을 사용하면 사용자에게 사용자 이름 또는 암호를 묻는 메시지를 표시하지 않고 웹 사이트의 공용 영역에 액세스할 수 있습니다. 기본 IUSR(익명 사용자 계정)을 사용하여 익명 인증을 구성하거나 익명 사용자에 대한 로컬 사용자 계정을 설정할 수 있습니다.
UI를 사용하여 익명 인증을 구성하려면
IIS 관리자의 기능 보기에서 인증을 두 번 클릭합니다.
인증 페이지에서 익명 인증을 선택합니다.
작업 창에서 편집을 클릭하여 익명 사용자가 사이트에 연결할 보안 주체(사용자 자격 증명)를 설정합니다.
익명 인증 자격 증명 편집 대화 상자에서 다음 옵션 중 하나를 선택합니다.
IIS에서 사이트 또는 애플리케이션에 액세스하는 데 사용하는 특정 사용자 계정을 구성하려면 특정 사용자를 선택합니다. 그런 다음[설정]을 클릭하여 [자격 증명 설정] 대화 상자를 열고 ID의 사용자 이름과 암호를 입력합니다. 그런 후 OK를 클릭합니다.
애플리케이션 풀의 속성 페이지에 현재 지정된 계정을 사용하여 IIS 프로세스를 실행하려면 애플리케이션 풀 ID를 선택합니다. 기본적으로 이 ID는 IUSR 계정입니다.
Important
IUSR 계정을 사용하는 경우 익명 사용자에게 해당 계정과 연결된 모든 내부 네트워크 액세스 권한을 부여합니다.
확인을 클릭하여 익명 인증 자격 증명 편집 대화 상자를 닫습니다.
명령줄을 사용하여 익명 인증을 구성하려면
익명 액세스에 대한 기본 계정을 변경하려면 다음 구문을 사용합니다.
appcmd set config /section:anonymousAuthentication /userName:
문자열 /password:
문자열
변수 username
는 IIS가 익명 인증에 사용하는 계정이며, 변수 password
는 기본적으로 구성 파일에서 암호화되는 암호입니다. 예를 들어 익명 액세스를 위해 Moe라는 계정과 pssword1 암호를 사용하려면 명령 프롬프트에 다음을 입력합니다.
appcmd set config /section:anonymousAuthentication /userName:Moe /password:pssword1
4단계: 기본 문서 구성
웹 사이트에 대한 클라이언트 요청에 문서 이름이 포함되지 않은 경우 IIS는 이름이 기본 문서로 정의된 파일을 찾습니다. 일반적으로 기본 문서 이름은 Default.htm. 우선 순위에 따라 기본 문서 이름 목록을 정의할 수 있습니다.
UI를 사용하여 기본 문서를 구성하려면
- IIS 관리자의 기능 보기에서 기본 문서를 두 번 클릭합니다.
- 작업 창에서 추가를 클릭합니다.
- 이름 상자에 기본 문서 목록에 추가할 파일 이름을 입력한 다음 확인을 클릭합니다. 이 파일 이름은 기본 문서 목록의 맨 위에 추가됩니다.
- 필요에 따라 목록에서 기본 문서를 선택하고 작업 창에서 위로 이동 또는 아래로 이동을 클릭하여 파일의 우선 순위를 변경합니다.
- 필요에 따라 목록에서 기본 문서를 선택하고 작업 창에서 제거를 클릭하여 기본 문서로 사용하지 않으려는 파일 이름을 제거합니다.
명령줄을 사용하여 기본 문서를 구성하려면
기본 문서 목록에 파일 이름을 추가하려면 다음 구문을 사용합니다.
appcmd set config /section:defaultDocument /+files.[value='
string']
변수 문자열 은 목록에 추가하려는 파일 이름입니다. 예를 들어 기본 문서 목록에 home.html 파일을 추가하려면 명령 프롬프트에 다음을 입력합니다.
appcmd set config /section:defaultDocument /+files.[value='home.html']
기본 문서 목록에서 home.html 파일을 제거하려면 명령 프롬프트에서 다음을 입력한 다음 Enter 키를 누릅니다.
appcmd set config /section:defaultDocument /-files.[value='home.html']
5단계: 정적 콘텐츠 압축 구성
필요에 따라 대역폭을 보다 효율적으로 사용하고 웹 사이트의 성능을 향상시키기 위해 정적 콘텐츠를 압축하도록 웹 서버를 구성할 수 있습니다.
UI를 사용하여 정적 콘텐츠 압축을 구성하려면
IIS 관리자의 기능 보기에서 압축을 두 번 클릭합니다.
정적 콘텐츠 압축을 사용하도록 선택하여 정적 콘텐츠를 압축하도록 IIS를 구성합니다.
정적 압축 상자에서 다음 설정을 구성합니다.
- 필요에 따라 (바이트 )보다 큰 파일만 압축하고 IIS에서 압축할 최소 파일 크기를 입력합니다. 기본 크기는 256바이트입니다.
- 캐시 디렉터리 텍스트 상자에 로컬 디렉터리의 경로를 입력하거나 찾아보기 단추(...)를 클릭하여 디렉터리를 찾습니다. 정적 파일이 압축되면 만료되거나 콘텐츠가 변경될 때까지 이 임시 디렉터리에 캐시됩니다. 임시 디렉터리가 NTFS 형식 파티션의 로컬 드라이브에 있어야 합니다. 디렉터리를 압축할 수 없으며 공유해서는 안 됩니다.
- 필요에 따라 애플리케이션 풀당 디스크 공간 제한(MB)을 선택하고 애플리케이션 풀당 최대 공간 크기를 메가바이트 단위로 입력하면 IIS가 정적 콘텐츠를 압축할 때 사용할 수 있습니다. 예를 들어 서버에 20개의 애플리케이션 풀이 있고 디스크 공간 제한이 100으로 설정된 경우 최대 디스크 공간은 2GB가 됩니다. 애플리케이션 풀당 디스크 공간 제한(MB) 옵션을 클릭하고 그 아래에 있는 텍스트 상자에 숫자를 입력하면 IIS는 설정된 제한에 도달할 때 가장 최근에 사용한 규칙에 따라 임시 디렉터리를 자동으로 정리합니다. 기본값은 애플리케이션 풀당 100MB입니다.
작업 창에서 적용을 클릭합니다.
명령줄을 사용하여 정적 콘텐츠 압축을 구성하려면
정적 콘텐츠의 HTTP 압축을 사용하도록 설정하려면 명령 프롬프트에서 다음 명령을 입력한 다음 Enter 키를 누릅니다.
appcmd set config /section:urlCompression /doStaticCompression:True
정적 콘텐츠 압축 설정을 구성하려면 다음 구문을 사용합니다.
appcmd set config /section:urlCompression /minFileSizeforComp:
int /directory:
string /maxDiskSpace:
int
이 변수 minFileSizeforComp
는 압축할 파일에 포함해야 하는 최소 바이트 수를 설정합니다. 기본값은 256입니다. 이 변수 directory
는 압축된 버전의 정적 파일이 일시적으로 저장되고 캐시되는 디렉터리를 지정합니다. 기본값은 다음 폴더입니다.
%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files
이 변수 maxDiskSpace
는 IIS가 정적 콘텐츠를 압축할 때 사용할 애플리케이션 풀당 최대 공간(메가바이트)을 설정합니다. 기본값은 애플리케이션 풀당 100MB입니다.
다음 단계
웹 사이트를 철저하게 테스트하여 예상대로 작동하는지 확인합니다. 그런 다음, 다음 기능을 구성하는 것이 좋습니다.
- 웹 서버의 문제 해결이나 성능 최적화에 도움이 되도록 IIS 로깅을 설정합니다. 지침은 Configure Logging in IIS을 참조하세요.
- 웹 서버의 보안을 개선하려면 요청 필터링을 구성합니다. 지침은 Configure Request Filtering in IIS을 참조하세요.