Share via


IIS 7의 구성 시스템

작성자: 월터 올리버

개요

IIS 7은 모든 새 관리 관련 기능의 핵심에 새로운 구성 시스템을 도입했습니다. 구성 시스템은 IIS, ASP.NET 및 FTP 7.5와 같은 기타 구성 요소를 포함하여 전체 웹 서버 플랫폼에 대한 구성 설정을 포함하는 분산된 지우기 텍스트 XML 파일을 기반으로 합니다. 해당 수준에 대해 잠금 해제된 경우 선택적으로 웹 콘텐츠와 함께 콘텐츠 디렉터리에서 설정할 수 있습니다. FTP 6.0 구성 설정은 MetaBase에 저장됩니다.

컴퓨터 관리자가 사이트 소유자 또는 애플리케이션 개발자와 같은 다른 사용자에게 다양한 수준의 구성 계층을 위임할 수 있습니다. 보안 기본값 및 기본 잠금은 구성 설정에 대한 쓰기 액세스를 컴퓨터 관리자에게만 제한합니다(예외는 DefaultDocument와 같은 몇 가지 사이트별 설정임). 그러나 정교하고 세분화된 잠금 기능을 사용하면 웹 네임스페이스의 scope 위해 특정 구성 설정을 안전하게 잠금 해제하고 더 많은 사용자에게 위임할 수 있습니다. 시스템은 이전 버전의 IIS와 API 수준에서 이전 버전과 호환됩니다(MetaBase 호환성 계층이 설치된 후).

루트(또는 전역) 수준에는 두 개의 개별 파일이 있습니다.

  • system32\inetsrv\config\applicationHost.config: IIS(웹 서버) 설정에 대한 전역 기본값을 유지합니다.
  • \Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config: 일부 ASP.NET 설정을 포함하여 .NET 프레임워크 설정의 전역 기본값을 유지합니다(나머지 설정은 루트 web.config라고도 하는 동일한 폴더의 web.config 있음).

두 개의 별도 파일이 여전히 있는 이유는 두 기술 버전이 서로 다르기 때문입니다(일정별 및 제품별). IIS는 Windows의 일부이며 .NET 프레임워크는 독립적으로 버전이 적용될 수 있습니다.

웹 콘텐츠 디렉터리에는 계층 수준 및 아래쪽에 대한 동작을 제어하는 선택적 web.config 파일이 있을 수 있습니다. 로컬 또는 원격일 수 있습니다(예: 콘텐츠 디렉터리가 UNC 공유에 있는 경우). IIS, ASP.NET 또는 해당 수준에서 지정할 수 있는 다른 .NET Framework 구성 설정을 포함할 수 있습니다. 기본적으로 web.config 파일이 없습니다.

계층

상속 계층 구조 측면에서 루트 파일은 machine.config 다음, 동일한 디렉터리(루트 web.config라고 함)에서 web.config 다음, 다음 다이어그램에 설명된 대로 네임스페이스를 따라 선택적 web.config 파일을 applicationHost.config. I S 7 및 구성 파일 네임스페이스에 포함된 파일 간의 관계를 보여 주는 다이어그램

섹션

구성 파일 내에서 설정은 "section"이라는 단위를 기반으로 구조화된 방식으로 구성됩니다. 구성 섹션은 논리적으로 관련된 설정 그룹으로, 전체적으로 배포하거나 시스템 전체에서 등록을 취소할 수 있으며 일반적으로 하나의 서버 모듈에서 사용됩니다.

즉, 작업자 프로세스에서 실행되는 거의 모든 런타임 모듈에는 해당 구성 섹션이 있습니다. 구성 섹션은 확장성 단위이기도 합니다. 구성 스키마에 새 설정을 추가하는 작업은 기존 섹션을 확장하거나 하나 이상의 섹션을 추가하여 수행됩니다.

섹션은 논리적으로 관련된 컬렉션("섹션 그룹")으로 그룹화됩니다. 섹션 그룹은 배포 또는 등록 단위 또는 기타 실질적인 작업(예: 잠금, 암호화)이 아닙니다. 설정이 없습니다. 설정의 organization 추가로 구성하고 구성 섹션의 긴 플랫 목록을 방지하는 것이 목적입니다. 설정 계층 구조를 빌드하는 데 사용되므로 설정 간에 관계가 있습니다(부모/자식).

즉, 섹션 그룹을 중첩할 수 있습니다. 지정된 섹션은 항상 하나의 섹션 그룹에만 속하며 다른 섹션(또는 섹션 그룹)을 포함할 수 없습니다. 지정된 섹션 그룹은 부모 섹션 그룹에 속할 수 있으며 0개 이상의 자식 섹션 그룹을 포함할 수 있습니다. 일반적으로 둘 이상의 섹션이 포함됩니다. 그렇지 않으면 처음에 스키마를 사용할 만한 이유가 없습니다(그러나 고객은 어떤 이유로든 섹션이 하나만 있는 고유한 섹션 그룹을 만들어 스키마를 확장할 수 있음).

다음은 섹션 및 섹션 그룹을 보여 주는 예제입니다.

<!-- section group for web server configuration -->
<system.webServer>
  <!-- section group for web server security configuration -->
  <security>
    <!-- section group for web server authentication configuration -->
    <authentication>
      <!-- three sections for authentication -->
      <basicAuthentication ... />
      <windowsAutnentication ... />
      <anonymousAuthentication ... />
    </authentication>
  </security>
</system.webServer>

모든 섹션에는 이름이 있습니다. 짧은 이름은 섹션 자체의 이름이며, 긴 이름은 포함된 모든 섹션 그룹을 포함하는 전체 이름입니다. 예를 들어 "windowsAuthentication"의 전체 이름은 "system.webServer/security/authentication/windowsAuthentication"입니다. 이 계층적 organization 이름이 같지만 다른 섹션 그룹에서 향후 섹션(및 섹션 그룹)을 허용합니다.

URL 네임스페이스의 모든 수준에는 연결된 구성이 있을 수 있습니다. 지정된 수준에 대한 구성은 자식 수준에서 특별히 재정의되지 않는 한 자식 수준으로 상속됩니다. URL당 구성을 수행하는 간단한 방법은 가상 경로에 매핑된 실제 파일 시스템 폴더에서 web.config 파일을 사용하는 것입니다. 루트 수준(컴퓨터 수준)에서는 구성 섹션 그룹(문서의 뒷부분에서 정의될 예정)에 따라 별도의 파일을 사용해야 합니다. 현재 용도로는 구성을 포함하는 XML 요소의 이름으로 간주합니다.

섹션 그룹 Description 루트 파일
system.applicationHost Windows 정품 인증 시스템: 프로세스 모델 System32\inetsrv\config\applicationHost.config
system.webServer IIS: 웹 서버 System32\inetsrv\config\applicationHost.config
system.web ASP.NET Windows\microsoft.net\framework\v2.0.50727\config\web.config
시스템.* 기타 .NET 프레임워크 Windows\microsoft.net\framework\v2.0.50727\config\machine.config
[Microsoft 기타] Microsoft 기타 Windows\microsoft.net\framework\v2.0.50727\config\machine.config
[사용자 지정] 타사 machine.config 또는 루트 web.config 또는 applicationHost.config( 최대 타사/고객)

구성의 지속성 형식은 XML입니다. 따라서 구성 조직 구성 단위와 XML 용어 간의 매핑을 설명하는 것이 유용합니다. 섹션 그룹 및 섹션은 XML 요소입니다. 섹션 내에서 설정은 XML 용어를 밀접하게 따르는 더 작은 단위로 구성됩니다.

구성 단위 XML 용어 Description
구성 요소 XML 요소 다른 자식 단위를 포함합니다. 값이 없습니다.
구성 컬렉션 XML 요소 요소의 프라이빗 사례: add/remove/clear 형식의 요소 그룹을 포함합니다.
구성 속성 XML 특성 값만 포함합니다. 는 자식 단위를 포함하지 않습니다.

구성 시스템은 핵심에서 선언적 스키마에서 구동됩니다. 구성 스키마는 잘 알려진 위치인 system32\inetsrv\config\schema에 있는 여러 파일에 걸쳐 있습니다. 기본적으로 컴퓨터 관리자만 이 폴더에 액세스할 수 있습니다. 고객 또는 타사는 해당 디렉터리에 복사하여 사용자 지정 섹션에 대한 스키마 파일을 추가할 수 있습니다. 구성 시스템은 호출자가 구성하는 과정에서 시작될 때 자동으로 선택합니다. 구성 시스템이 이미 실행 중인 경우 스키마 파일 또는 새 파일의 변경 내용을 선택하지 않습니다.

오류가 발생하여 스키마가 손상되고 서버를 시작할 수 없으므로 이 디렉터리에 설치된 IIS 또는 기타 스키마 파일을 편집하지 마세요.

참고

스키마 파일을 가져와서 설정하는 고급 프로그래밍 인터페이스는 없으며 기존 파일 액세스 API 및 XML 구문 분석/편집에 미치지 않습니다. 스키마 폴더를 변경하기 전에 항상 중요한 상태를 백업하는 것이 좋습니다.

세 개의 파일은 웹 서버 플랫폼의 통합 스키마를 구성합니다.

  • IIS_schema.xml: Windows 정품 인증 시스템 및 IIS 웹 서버 설정 및 섹션 그룹을 다룹니다.
  • ASPNET_schema.xml: 섹션 그룹의 ASP.NET 설정을 다룹니다.
  • FX_schema.xml: 다양한 섹션 그룹의 다른 .NET 프레임워크 설정을 다룹니다.

또한 IIS 7 FTP 기능이 설치된 경우 FTP_schema.xml 찾을 수 있습니다.