해당 글은 아래의 자료를 기계번역해서 노트처럼 기록하였습니다.

 

Introduction to IIS Architectures

https://docs.microsoft.com/ko-kr/iis/get-started/introduction-to-iis/introduction-to-iis-architecture

 

IIS 7.0 and later         The features described in this article were introduced in IIS 7.0.

Version

Notes

IIS 7.0 and later

The features described in this article were introduced in IIS 7.0.

IIS 6.0 and earlier

The features described in this article were not supported prior to IIS 7.0.

 

 

Introduction

Internet Information Services (IIS) 7 and later provide a request-processing architecture which includes:

IIS (인터넷 정보 서비스) 7 이상에서는 다음을 포함하는 요청 처리 아키텍처를 제공합니다.

  • The Windows Process Activation Service (WAS), which enables sites to use protocols other than HTTP and HTTPS.

사이트에서 HTTP HTTPS 이외의 프로토콜을 사용할 수 있게 하는 Windows Process Activation Service (WAS).

  • A Web server engine that can be customized by adding or removing modules.

모듈을 추가하거나 제거하여 사용자 정의 할 수 있는 웹 서버 엔진.

  • Integrated request-processing pipelines from IIS and ASP.NET.

IIS ASP.NET의 요청 처리 파이프 라인을 통합했습니다.

Components in IIS

IIS contains several components that perform important functions for the application and Web server roles in Windows Server® 2008 (IIS 7.0) and Windows Server 2008 R2 (IIS 7.5).

IIS에는 Windows Server® 2008 (IIS 7.0) Windows Server 2008 R2 (IIS 7.5)에서 응용 프로그램 및 웹 서버 역할에 중요한 기능을 수행하는 여러 구성 요소가 포함되어 있습니다

Each component has responsibilities, such as listening for requests made to the server, managing processes, and reading configuration files.

각 구성 요소에는 서버에 대한 요청 수신, 프로세스 관리 및 구성 파일 읽기와 같은 책임이 있습니다.

These components include protocol listeners, such as HTTP.sys, and services, such as World Wide Web Publishing Service (WWW service) and Windows Process Activation Service (WAS).

이러한 구성 요소에는 HTTP.sys와 같은 프로토콜 수신기와 World Wide Web 게시 서비스 (WWW 서비스) Windows Process Activation Service (WAS) 같은 서비스가 포함됩니다.

 

Protocol Listeners

Protocol listeners receive protocol-specific requests, send them to IIS for processing, and then return responses to requestors.

프로토콜 리스너는 프로토콜 관련 요청을 받고 이를 처리하기 위해 IIS로 보낸 다음 요청자에게 응답을 반환합니다.

For example, when a client browser requests a Web page from the Internet, the HTTP listener, HTTP.sys, picks up the request and sends it to IIS for processing.

예를 들어 클라이언트 브라우저가 인터넷에서 웹 페이지를 요청하면 HTTP 수신기 인 HTTP.sys가 요청을 선택하여 처리를 위해 IIS로 보냅니다.

Once IIS processes the request, HTTP.sys returns a response to the client browser.

IIS가 요청을 처리하면 HTTP.sys는 클라이언트 브라우저에 응답을 반환합니다.

Client Browser -> Request in Web page -> HTTP.sys(Protocol Listener) ->IIS

Clinet Browser <- Https.sys <- IIS

 

By default, IIS provides HTTP.sys as the protocol listener that listens for HTTP and HTTPS requests.

기본적으로 IIS HTTP HTTPS 요청을 수신하는 프로토콜 수신기로 HTTP.sys를 제공합니다.

HTTP.sys was introduced in IIS 6.0 as an HTTP-specific protocol listener for HTTP requests.

HTTP.sys HTTP 요청에 대한 HTTP 관련 프로토콜 수신기로 IIS 6.0에 도입되었습니다.

HTTP.sys remains the HTTP listener in IIS 7 and later, but includes support for Secure Sockets Layer (SSL).

HTTP.sys IIS 7 이상에서 HTTP 수신기로 유지되지만 SSL (Secure Sockets Layer)에 대한 지원을 포함합니다.

 

To support services and applications that use protocols other than HTTP and HTTPS, you can use technologies such as Windows Communication Foundation (WCF).

HTTP HTTPS 이외의 프로토콜을 사용하는 서비스 및 응용 프로그램을 지원하기 위해서, Windows Communication Foundation (WCF)과 같은 기술을 사용할 수 있습니다

WCF has listener adapters that provide the functionality of both a protocol listener and a listener adapter.

WCF에는 프로토콜 수신기와 수신기 어댑터의 기능을 모두 제공하는 수신기 어댑터가 있습니다.

Listener adapters are covered later in this document. For more information about WCF, see Windows Communication Foundation on MSDN.

WCF에 대한 자세한 내용은 MSDN Windows Communication Foundation ( 영문)을 참조하십시오 .

 

 

Hypertext Transfer Protocol Stack (HTTP.sys)

The HTTP listener is part of the networking subsystem of Windows operating systems, and it is implemented as a kernel-mode device driver called the HTTP protocol stack (HTTP.sys).

HTTP 수신기는 Windows 운영 체제의 네트워킹 하위 시스템에 속하며 HTTP 프로토콜 스택 (HTTP.sys)이라는 커널 모드 장치 드라이버로 구현됩니다

HTTP.sys listens for HTTP requests from the network, passes the requests onto IIS for processing, and then returns processed responses to client browsers.

HTTP.sys는 네트워크에서 HTTP 요청을 수신하고 처리하기 위해 IIS에 요청을 전달한 다음 처리 된 응답을 클라이언트 브라우저에 반환합니다.

 In IIS 6.0, HTTP.sys replaced Windows Sockets API (Winsock), which was a user-mode component used by previous versions of IIS to receive HTTP requests and send HTTP responses. IIS 7 and later continue to rely on HTTP.sys for HTTP requests.

IIS 6.0에서 HTTP.sys는 이전 버전의 IIS에서 HTTP 요청을 받고 HTTP 응답을 보내는데 사용되는 사용자 모드 구성 요소 인 Windows Sockets API (Winsock)를 대체했습니다. IIS 7 이상에서는 HTTP 요청에 대해 HTTP.sys를 계속 사용합니다.

HTTP.sys provides the following benefits:

HTTP.sys는 다음과 같은 이점을 제공합니다.

  • Kernel-mode caching. Requests for cached responses are served without switching to user mode.

커널 모드 캐싱. 캐시 된 응답 요청은 사용자 모드로 전환하지 않고 제공됩니다.

  • Kernel-mode request queuing. Requests cause less overhead in context switching because the kernel forwards requests directly to the correct worker process. If no worker process is available to accept a request, the kernel-mode request queue holds the request until a worker process picks it up.

커널 모드 요청 큐. 커널은 요청이 올바른 작업자 프로세스로 직접 전달되기 때문에 요청이 컨텍스트 스위칭에서 오버 헤드가 적습니다. 요청을 승인하는 데 사용할 수 있는 작업자 프로세스가 없으면 작업자 프로세스가 요청할 때까지 커널 모드 요청 큐가 요청을 보관합니다.

  • Request pre-processing and security filtering.

사전 처리 및 보안 필터링을 요청

 

World Wide Web Publishing Service (WWW service)

In IIS 7 and later, functionality that was previously handled by the World Wide Web Publishing Service (WWW Service) alone is now split between two services: WWW Service and a new service, Windows Process Activation Service (WAS).

IIS 7 이상에서는 World Wide Web 게시 서비스 (WWW 서비스)만으로 처리되었던 기능이 이제는 WWW 서비스와 새로운 서비스 인 Windows Process Activation Service (WAS)의 두 가지 서비스로 분할됩니다.

These two services run as LocalSystem in the same Svchost.exe process, and share the same binaries.

이 두 서비스는 동일한 Svchost.exe 프로세스에서 LocalSystem으로 실행되며 동일한 바이너리를 공유합니다.

참고

You may also see the WWW Service referred to as W3SVC in documentation.

또한 설명서에서 W3SVC라고하는 WWW 서비스를 볼 수도 있습니다.

 

How WWW Service works in IIS 6.0

In IIS 6.0, WWW Service manages the following main areas in IIS:

  • HTTP administration and configuration
  • Process management
  • Performance monitoring

HTTP Administration and Configuration

The WWW Service reads configuration information from the IIS metabase and uses that information to configure and update the HTTP listener, HTTP.sys.

WWW 서비스는 IIS 메타베이스에서 구성 정보를 읽고 이 정보를 사용하여 HTTP 수신기 인 HTTP.sys를 구성하고 업데이트합니다.

In addition, WWW service starts, stops, monitors, and manages worker processes that process HTTP requests.

또한 WWW 서비스는 HTTP 요청을 처리하는 작업자 프로세스를 시작, 중지, 모니터링 및 관리합니다.

Performance Monitoring

The WWW Service monitors performance and provides performance counters for Web sites and for the IIS cache.

WWW 서비스는 성능을 모니터링하고 웹 사이트 및 IIS 캐시에 대한 성능 카운터를 제공합니다.

Process Management

The WWW Service manages application pools and worker processes, such as starting, stopping, and recycling worker processes.

WWW 서비스는 작업자 프로세스 시작, 중지 및 재활용과 같은 응용 프로그램 풀 및 작업자 프로세스를 관리합니다.

Additionally, the WWW Service monitors the health of the worker processes, and invokes rapid fail detection to stop new processes from starting when several worker processes fail in a configurable amount of time.

또한 WWW 서비스는 작업자 프로세스의 상태를 모니터링하고 신속한 실패 감지를 호출하여 구성 가능한 시간 내에 여러 작업자 프로세스가 실패 할 경우 새 프로세스가 시작되지 않도록 합니다.

아래의 내용으로 보아서 위의 내용은 IIS 6.0 해당하는 것으로 보입니다.

 

How the WWW Service works in IIS

In IIS, the WWW service no longer manages worker processes.

IIS에서 WWW 서비스는 더 이상 작업 프로세스를 관리하지 않습니다.

Instead, the WWW Service is the listener adapter for the HTTP listener, HTTP.sys.

대신 WWW 서비스는 HTTP 수신기 인 HTTP.sys에 대한 수신기 어댑터입니다.

As the listener adapter, the WWW Service is primarily responsible for configuring HTTP.sys, updating HTTP.sys when configuration changes, and notifying WAS when a request enters the request queue.

리스너 어댑터로서 WWW 서비스는 주로 HTTP.sys 구성, 구성 변경시 HTTP.sys 업데이트 및 요청이 요청 큐에 들어갈 때 WAS에 알리는 책임이 있습니다.

Additionally, the WWW Service continues to collect the counters for Web sites. Because performance counters remain part of the WWW Service, they are HTTP specific and do not apply to WAS.

또한 WWW 서비스는 웹 사이트 카운터를 계속 수집합니다. 성능 카운터는 WWW 서비스의 일부이므로 HTTP에 고유하며 WAS에는 적용되지 않습니다.

 

Windows Process Activation Service (WAS)

In IIS 7 and later, Windows Process Activation Service (WAS) manages application pool configuration and worker processes instead of the WWW Service.

IIS 7 이상에서 WAS (Windows Process Activation Service) WWW 서비스 대신 응용 프로그램 풀 구성 및 작업자 프로세스를 관리합니다

This enables you to use the same configuration and process model for HTTP and non-HTTP sites.

따라서 HTTP 및 비 HTTP 사이트에 대해 동일한 구성 및 프로세스 모델을 사용할 수 있습니다.

 

Additionally, you can run WAS without the WWW Service if you do not need HTTP functionality.

또한 HTTP 기능이 필요하지 않은 경우 WWW 서비스없이 WAS를 실행할 수 있습니다

For example, you can manage a Web service through a WCF listener adapter, such as NetTcpActivator, without running the WWW Service if you do not need to listen for HTTP requests in HTTP.sys.

예를 들어 HTTP.sys에서 HTTP 요청을 수신 할 필요가 없는 경우 WWW 서비스를 실행하지 않고 NetTcpActivator와 같은 WCF 수신기 어댑터를 통해 웹 서비스를 관리 할 수 있습니다.

For information about WCF listener adapters and about how to host WCF applications in IIS 7 and later by using WAS, see Hosting in WCF on MSDN.

WCF 수신기 어댑터 및 IIS 7 이상에서 WAS를 사용하여 WCF 응용 프로그램을 호스팅하는 방법에 대한 자세한 내용은 MSDN WCF 에서 호스팅을 참조하십시오

 

Configuration Management in WAS

On startup, WAS reads certain information from the ApplicationHost.config file, and passes that information to listener adapters on the server.

시작시 WAS ApplicationHost.config 파일에서 특정 정보를 읽고 해당 정보를 서버의 수신기 어댑터에 전달합니다.

 

여기서 Applicationhost.config 파일은 %windir%\system32\inetsrv\config 위치에서 확인할 수 있으며,

Notepad 로 열어 보면, IIS 에 대한 설정이 저장되는 것을 알 수 있습니다.

자세한 내용은 Introduction to ApplicationHost.config 기술자료에 설명하고 있습니다.

 

Listener adapters are components that establish communication between WAS and protocol listeners, such as HTTP.sys.

리스너 어댑터는 HTTP.sys와 같은 WAS와 프로토콜 리스너 간의 통신을 설정하는 구성 요소입니다.

Once listener adapters receive configuration information, they configure their related protocol listeners and prepare the listeners to listen for requests.

리스너 어댑터는 구성 정보를 수신하면 관련 프로토콜 리스너를 구성하고 요청을 수신 대기하도록 리스너를 준비합니다.

In the case of WCF, a listener adapter includes the functionality of a protocol listener.

WCF의 경우 리스너 어댑터는 프로토콜 리스너의 기능을 포함합니다.

So, a WCF listener adapter, such as NetTcpActivator, is configured based on information from WAS.

따라서 WCF 리스너 어댑터 ( : NetTcpActivator) WAS의 정보를 기반으로 구성됩니다

Once NetTcpActivator is configured, it listens for requests that use the net.tcp protocol.

NetTcpActivator가 구성되면 net.tcp 프로토콜을 사용하는 요청을 수신합니다

 

The following list describes the type of information that WAS reads from configuration:

다음 목록은 WAS가 구성에서 읽는 정보 유형을 설명합니다.

  • Global configuration information
  • Protocol configuration information for both HTTP and non-HTTP protocols
  • Application pool configuration, such as the process account information
  • Site configuration, such as bindings and applications
  • Application configuration, such as the enabled protocols and the application pools to which the applications belong

If ApplicationHost.config changes, WAS receives a notification and updates the listener adapters with the new information.

 

Process Management

WAS manages application pools and worker processes for both HTTP and non-HTTP requests.

WAS HTTP 요청과 비 HTTP 요청 모두에 대해 응용 프로그램 풀과 작업자 프로세스를 관리합니다

When a protocol listener picks up a client request, WAS determines if a worker process is running or not.

프로토콜 리스너가 클라이언트 요청을 선택하면 WAS는 작업자 프로세스가 실행 중인지 여부를 판별합니다.

If an application pool already has a worker process that is servicing requests, the listener adapter passes the request onto the worker process for processing.

응용 프로그램 풀에 이미 요청을 처리하는 작업자 프로세스가 있는 경우 리스너 어댑터는 요청을 처리하기 위해 작업자 프로세스에 전달합니다

If there is no worker process in the application pool, WAS will start a worker process so that the listener adapter can pass the request to it for processing.

응용 프로그램 풀에 작업자 프로세스가 없으면 WAS는 작업자 프로세스를 시작하여 리스너 어댑터가 처리를 위해 요청을 전달할 수 있도록 합니다.

 

여기까지 기본적인 Architecture 대해서 설명하고 있는데 기술자료를 읽기만 해서는 이해가 되지 않습니다.

다음 포스팅 글에서 Windows Process Activation Service (WAS), World Wide Web Publishing Service (WWW service) 어떻게 동작되는지 조금 자세히 확인해 보도록 하겠습니다.

 

'IIS' 카테고리의 다른 글

IIS Architecture 공부(3) Application Pools in IIS  (0) 2019.03.17
IIS Architecture 공부(2). (W3SVC, WAS)  (0) 2019.03.17
IIS Architecture 공부(1)  (0) 2019.03.17

+ Recent posts