SimpleIsBest.NET

유경상의 닷넷 블로그

HTTP Compression in IIS 7.0

by 블로그쥔장 | 작성일자: 2008-06-30 오전 12:54:00
이 글은 오래된 전에 작성된 글입니다. 따라서 최신 버전의 기술에 알맞지 않거나 오류를 유발할 수 있습니다. 저자는 이 글에 대한 질문을 받지 않을 것입니다. 하지만 이 글이 리뉴얼 되면 이 글에 대한 질문을 하거나 토론을 할 수도 있습니다.

무리하지 말고 1주일에 한 개씩만 포스트를 해보자는 생각을 가지고 있습니다. 이번에는 좀 가벼운(?) 주제입니다. 지금까지 제 블로그에서 많이 다루었던 내용들 중 하나인데요, 바로 HTTP 압축에 대한 내용 입죠. Windows Vista에서 첫 선을 보인 IIS 7.0은 Windows Server 2008에서 실제 운영환경에서 사용될 수 있게 되었습니다. IIS 7.0은 이전 버전인 IIS 6.0이 가졌던 성능과 안정성에 더불어 많은 구조적인 향상과 기능적인 향상을 포함하고 있습니다. Windows Server 2008에서 제가 가장 마음에 들어 하는 부분도 IIS 7.0 이구요. IIS 7.0에서 변화된 사항을 모두 다루자면 아마 몇 개월이 걸릴 겁니다. 조급하게 생각하지 말고 하나씩 차근차근 알아 보도록 합시다. 그런 의미에서 이번 포스트는 IIS 7.0에서 HTTP 압축을 설정하는 방법에 대해 간략히(?) 살펴보도록 하겠습니다.


HTTP 압축 관련글

HTTP Compression in IIS 7.0

HTTP 압축은 웹 서버에서 HTTP의 Content-Encoding 헤더를 이용하여 HTTP 본문(body)의 내용을 압축하여 송수신하는 것을 말한다. HTTP 압축을 왜 사용해야 하는가 HTTP 압축의 작동 방식에 대해서는 필자의 오래된 글들을 살펴보기 바란다. 다시 잔소리를 좀 해 보자면, "왜" 와 "원리"는 IT 기술을 다룰 때 매우 중요한 요소이다. 이것을 충분히 이해하면서 새로운 것을 접할 때와 그렇지 않을 때의 차이는 매우 크기 때문이다. 시간이 되는 데로 등장 배경과 원리에 대한 글들은 꼭 읽어 보는 것이 좋다. 그래야만 새로운 자료를 읽을 때 그것을 이해하는 정도의 차이가 많이 날 뿐더러 기억 속에 오래 남는다.

예전의 필자의 글들을 이렇게 자주 인용하는 것은 블로그의 페이지 뷰 카운트를 올리려는 얄팍한 속셈이 아니다. 필자는 포스트를 작성할 때 가급적 "원리"에 대해 설명하고자 노력한다. 그 이유는 그 포스트가 자료로써 재 사용성이 높기 때문이다. 시간이 남아돌아서나 할 일이 없어서, 혹은 독자들 엿 먹어보라고 글을 길게 쓰는 것은 아니다.

HTTP Compression in Previous IIS Version

HTTP 압축은 웹 사이트나 웹 서비스의 전체적인 성능을 향상시키는 기법 중 하나임은 분명하다. HTTP 압축을 적용하는 방법은 과거의 필자처럼 직접 HTTP 압축을 수행하는 HTTP 모듈을 작성할 수도 있다. 하지만 이 기법은 .htm 이나 .asp와 같이 ASP.NET 엔진에 의해 제어되지 않는 콘텐츠에 대해서는 압축을 수행하지 못한다. 대신 상용으로 판매되는 HTTP 압축 엔진(ISAPI 필터 기반의 압축)을 구매하거나 IIS에서 제공하는  HTTP 압축 기능을 사용해야 한다.

IIS 5.x의 HTTP 압축 기능은 그다지 안정적이지 못했고 설정하는데 매우 불편했음은 필자의 글에서 알 수 있을 것이다. 또한 IIS 6.0의 HTTP 압축은 다음의 문제를 가지고 있었다.

  • 콘텐츠의 파일 확장자(extension)에 의해 압축 여부를 결정
  • 압축 설정을 위한 UI 가 부족함

IIS 6.0의 압축 기능은 나쁘지 않다. 특히 이미지 파일들이나 .htm 파일들에 대한 압축은 압축한 결과를 별도의 디렉터리에 캐시 해 놓음으로써 매번 압축을 수행하지 않도록 구성되어 매우 효율적이라 할 수 있다. 하지만 IIS 6.0에서는 HTTP 압축을 수행할 대상을 URL의 확장자로 구분하도록 함으로써 확장자가 없는 URL이나 하나의 확장자가 다양한 종류의 콘텐츠를 렌더링 할 때 문제점을 가지고 있었다.

또한  IIS 6.0의 압축 기능을 설정하는 방법이 매우 불편했다. 사이트에 대해 전역적인 압축 설정을 IIS 관리자가 제공하지만 디렉터리 별로 압축 여부를 결정하려면 메타 베이스를 직접 수정해야 하는 욜라 짜증나는 시츄에이션을 만들기도 한다.

HTTP Compression in IIS 7.0

Windows Server 2008과 Windows Vista에 포함된 IIS 7.0에는 이전 버전의 IIS가 제공하던 HTTP 압축을 그대로 제공할 뿐만 아니라 앞서 언급했던 IIS 6.0의 개선 사항을 포함하고 있다. 이들 개선 사항을 살펴보기 전에 IIS 7.0의 압축 모듈에 대해 먼저 살펴보도록 하자.

HTTP Compression Module in IIS 7.0

HTTP 압축을 수행하는 IIS 7.0의 압축 모듈은 네이티브 코드로 작성된 DynmaicCompressionModule(compdyn.dll) 과 StaticCompressionModule(compstat.dll) 이다. 이 두 모듈은 ASP, ASPX 등과 같은 동적 콘텐츠나 .htm, .js 등과 같이 정적 콘텐츠를 압축하는데 사용되는 HTTP 모듈이다. [그림1]은 IIS 7.0에 설정된 두 압축 모듈을 보여 주고 있다.

IIS 7.0의 압축 모듈 설정
그림1. IIS 7.0에 설정된 압축 모듈들

IIS 6.0 이전에는 압축이나 암호화 같은 기능은 ISAPI 필터로나 구현이 가능했지만 IIS 7.0에 와서는 새로운 파이프 라인 모델에 의해 HTTP 모듈을 통해 작업이 가능하다. IIS 7.0의 HTTP 모듈은 네이티브 코드 혹은 닷넷 코드로도 작성이 가능하며 이전 버전의 IIS에서 ISAPI 필터가 수행했던 역할을 동일하게 담당한다. 이 말은 닷넷 코드로 작성된 HTTP 모듈(IHttpModule 인터페이스를 구현하는 클래스)으로 ASP.NET의 콘텐츠들(.aspx, .asmx, .ashx 등) 뿐만 아니라 일반적인 IIS 콘텐츠들(.asp, .htm, .jpg 등)을 처리할 수 있다는 말이다. 좋은 예제로써 .asp 파일이나 .htm 파일에 대해서도 ASP.NET 폼 인증을 적용할 수 있다. ASP.NET 폼 인증은 HTTP 모듈로 구현되어 있고 IIS 7.0에서 HTTP 모듈은 더 이상 ASP.NET에만 적용되는 것이 아니라 IIS 내에서 전역적으로 적용이 가능하기 때문이다. IIS 7.0의 이러한 새로운 파이프 라인 모델은 많은 새로운 가능성을 열어준다. IIS 7.0의 새로운 파이프 라인 모델에 대해서는 별도의 포스트에서 다루기로 하고 여기서는 그만 닥치는 것이 좋을 듯 하다.

IIS에서 왜 동적 콘텐츠와 정적 콘텐츠에 대한 압축 모듈이 다를까 생각해 보자. 정적 콘텐츠는 말 그대로 콘텐츠의 내용이 정적으로 지정되어 있어서 변경되지 않음을 의미한다. 따라서 정적 콘텐츠에 대한 HTTP 요청(HTTP request)의 결과는 매번 동일한 것으로 간주된다. 정적인 .htm 파일이나 .jpg, .css 등과와 같은 파일이 정적 콘텐츠의 대표적인 예이다. 정적 콘텐츠는 HTTP 요청의 결과가 동일하기 때문에 정적 콘텐츠 압축 모듈(StaticCompressionModule)은 HTTP 요청의 결과를 압축할 때 압축된 결과를 압축 임시 폴더에 기록해 두어 캐시 해 둔다. 그리고 동일한 콘텐츠에 대한 요청이 반복되면 매번 압축을 수행하기 보다는 임시 폴더에 기록해둔 압축된 콘텐츠를 그대로 반환한다. 압축에 소요되는 CPU 자원과 메모리 자원을 아끼는 알흠다운 알고리즘이라 할 수 있겠다. 물론 정적 콘텐츠 파일이 변경되면 임시 폴더에 기록된 내용 역시 제거되기 때문에 이러한 걱정은 하지 않아도 된다.

반면 동적 콘텐츠는 HTTP 요청마다 서로 다른 결과를 반환할 수 있다. 따라서 동적 콘텐츠에 대한 압축 모듈(DynamicCompressionModule)은 매 HTTP 요청마다 그 결과를 압축하며, 압축된 결과를 캐시 하지도 않는다.

Dynamic Content vs. Static Content in HTTP Compression

IIS 6.0에서는 동적 콘텐츠와 정적 콘텐츠를 URL의 확장자를 통해 구분했었다. 확장자를 사용하기 때문에 메타 베이스 설정에 의해 .asp, .aspx 등에 대해서는 동적 콘텐츠로, .htm, .js 등에 대해서는 정적 콘텐츠로 설정이 가능했던 것이다.

IIS 7.0은 더 이상 확장자에 의존하지 않는다. IIS 7.0에서는 어떤 HTTP 요청을 처리할 때 HTTP 핸들러에 의해 처리되는 콘텐츠는 동적 콘텐츠며 그렇지 않은 경우 등록된 MIME 맵에 의해 정적 콘텐츠로 간주된다. IIS의 설정은 정적 콘텐츠들에 대한 목록을 가지고 있으며 이 목록은 정적 콘텐츠로 간주되는 디스크 파일들에 대한 확장자와 MIME 타입을 기록해 두고 있다. 정적 콘텐츠로 판단된 HTTP 요청은 StaticFileModule (static.dll) 이란 이름을 가진 HTTP 모듈에 의해 처리되고 그 결과가 반환된다. 즉, 정적 콘텐츠 파일이 브라우저로 다운로드 된다. 정적 콘텐츠를 정의하는 목록에 포함되어 있는 확장자를 사용하는 HTTP 요청일지라도 HTTP 핸들러에 의해 먼저 처리된다면 StaticFileModule은 수행되지 않기 때문에 동적 콘텐츠로서 간주됨에 유의하자.

동적 콘텐츠와 정적 콘텐츠에 따라서 어떤 HTTP 압축 모듈이 사용될 것인가가 결정되므로 이 둘에 대한 구분을 하는 것이 중요하다. 비록 .htm 확장자를 사용하는 HTTP 요청이 들어오더라도 .htm 확장자에 대해 HTTP 핸들러가 매핑 되어 있다면 이 HTTP 요청은 동적 콘텐츠로 간주되며 동적 콘텐츠 압축 모듈인 DynamicCompressionModule에 의해 처리됨에 주의하도록 하자.

What's New ?

지금까지 IIS 7.0에서 HTTP 압축을 수행하는 압축 모듈들과 정적 콘텐츠와 동적 콘텐츠의 구분에 대해 살펴보았다. 이제부터 본론으로 들어와 IIS 7.0의 HTTP 압축이 이전 버전들에 비해 무엇이 나아졌는지 살펴보도록 하자.

Compression Configuration UI

이전 IIS 버전들의 HTTP 압축 설정에 관련된 UI는 한마디로 형편없었다고 보아도 무방하다. IIS 전체(모든 사이트, 모든 웹 어플리케이션, 모든 가상 디렉터리, 모든 콘텐츠)에 적용되는 달랑 하나의 썰렁한 UI로는 웹 어플리케이션의 다양한 요구사항을 만족시킬 수 없었다.

IIS 7.0에서는 이전 버전들 보다 훨씬 편리한 압축 설정 UI를 가지고 있다. 먼저 HTTP 압축에 대한 전역 설정을 하기 위한 UI를 살펴보자. [그림2]는 압축에 대한 전역 설정을 위해 선택해야 하는 사항을 보여준다. 먼저 IIS 관리자에서 컴퓨터를 선택한 후 오른쪽 패널에서 압축 기능을 선택하면 된다.

IIS 7.0 전역 압축 설정 
그림2. 전역 압축 설정을 위한 선택 사항 (Windows Vista Service Pack 1)

압축 기능 설정은 Windows Server 2008에는 기본 포함되어 있지만 Windows Vista에서는 Service Pack 1을 설치해야만 볼 수 있다. 만약 서비스 팩을 설치하지 않았다면 직접 applicationHost.config 파일을 수정해야만 한다.

[그림2]와 같이 압축 기능을 선택하면 [그림3]과 같은 압축 기능 페이지를 볼 수 있다. 이 설정 페이지에서는 IIS 서버 전역적인 압축 설정을 수행할 수 있다. 기본 설정 상 동적 콘텐츠의 압축은 수행하지 않으며 정적 콘텐츠의 압축만이 수행되고 있음을 알 수 있을 것이다. 또한 IIS 7.0에서는 정적 콘텐츠를 압축할 때 일정 크기(기본 256 바이트) 이상의 파일만을 압축하도록 구성된다. 마지막으로 압축된 정적 콘텐츠를 캐시 할 디렉터리의 위치와 응용 프로그램 풀(application pool)당 디스크 공간의 제약 사항도 설정할 수 있다.

IIS 7.0의 압축 기능 페이지 
그림3. IIS 7.0의 압축 기능 페이지(전역 설정) 및 기본 설정 값

여기까지만 살펴보면 IIS 6.0의 압축 설정과 그다지 다를 게 없어 보인다. IIS 6.0에서도 이 정도의 설정 UI는 제공했기 때문이다. IIS 7.0에서는 압축에 대한 전역 설정 뿐만 아니라 각 사이트, 웹 어플리케이션, 디렉터리에 대한 설정도 지정해 줄 수 있다. IIS 관리자에서 사이트 혹은 웹 어플리케이션, 가상 디렉터리를 선택하고 오른쪽 설정 패널을 살펴보면 [그림2]와 같은 압축 기능 아이콘을 찾아 볼 수 있을 것이다. 그리고 이 압축 아이콘을 선택하면 [그림4]와 같은 압축 설정 페이지를 볼 수 있다.

IIS 7.0의 압축 하위 설정
그림4. IIS 7.0의 압축 기능 페이지(하위 설정) 및 기본 설정 값 

웹 사이트, 웹 어플리케이션, 가상 디렉터리 수준의 압축 설정은 달랑 동적 콘텐츠와 정적 콘텐츠에 대해 압축을 사용할 것인가 말 것인가 만을 설정할 수 있다. 하지만 IIS 6.0에 비하면 장족의 발전을 한 셈이다. IIS 6.0에서는 욜라 짜증나는 커맨드 라인 명령을 사용해야만 이런 설정을 할 수 있었으니 말이다.

기본 설정에 의하면 정적 콘텐츠 압축은 수행하되 동적 콘텐츠 압축은 수행하지 않는 것으로 되어 있다. 동적 콘텐츠 압축은 HTTP 요청에 대해 매번 압축을 수행하므로 웹 서버의 CPU 점유율이 증가할 수 있기 때문에 기본 설정이 꺼져있다. HTTP 압축에 관련된 필자의 글에서 이야기 한 대로 HTTP 압축을 사용할 것인가에 대한 결정은 콘텐츠의 크기, 네트워크 대역폭 등을 종합적으로 고려해야 함은 두 말할 나위가 없다. HTTP 압축을 수행할 것인가에 대한 필자의 일반적인 권고는 필자의 예전 글에서 Recommendation 항목을 찾아보기 바란다.

이외에도 IIS 7.0은 압축에 관련된 다양한 설정 사항을 가지고 있다. 하지만 앞서 예를 든 UI를 제외하고는 다른 압축 설정에 대한 UI는 제공하지 않는다. 예를 들어 CPU가 특정 사용률 이상으로 사용 중이라면 압축을 사용하지 않도록 할 수도 있는데 이러한 설정은 직접 IIS의 설정 파일(applicationHost.config)을 수정해야만 한다. 이 설정에 대한 내용을 모두 다루자면 포스트가 너무 길어지는 관계로 여기서는 다루지 않겠다. 대신 MSDN의 IIS 압축에 대한 설정 자료를 살펴보기 바란다.

Compression by MIME type

IIS 7.0의 압축은 더 이상 파일 확장자에 의해 결정되지 않으며 IIS가 반환하는 HTTP Response 메시지의 Content-Type, 즉 MIME 타입에 의해 압축 여부를 결정한다. C:\windows\system32\inetsrv\config 디렉터리에 존재하는 applicaionHost.config 파일에 정의된 HTTP 압축 설정은 다음과 같다.

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

  ......

  <system.webServer>

      ......

      <!-- 전역 HTTP 압축 설정 -->

      <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">

          <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />

          <dynamicTypes>

              <add mimeType="text/*" enabled="true" />

              <add mimeType="message/*" enabled="true" />

              <add mimeType="*/*" enabled="false" />

          </dynamicTypes>

          <staticTypes>

              <add mimeType="text/*" enabled="true" />

              <add mimeType="message/*" enabled="true" />

              <add mimeType="application/x-javascript" enabled="true" />

              <add mimeType="*/*" enabled="false" />

          </staticTypes>

      </httpCompression>

      ......

  </system.webServer>

  ......

</configuration>

리스트1. applicationHost.config에 설정된 HTTP 압축 기본 설정

[리스트1]에서 보는 바와 같이 IIS 7.0의 압축 설정은 MIME 타입에 의해 압축 여부를 결정하도록 되어 있다. 동적 콘텐츠는 text/* 와 message/* MIME 타입에 대해서만 압축을 수행하며 정적 콘텐츠는 text/* 와 message/* 그리고 application/x-javascript MIME 타입에 대해서만 압축을 수행하고 있음을 알 수 있을 것이다.

대개의 경우 압축은 텍스트에 대해서 좋은 압축 효율을 나타내며, 특히 XML 이나 HTML 과 같이 마크업이 포함되어 있는 경우 효율은 더욱 증가한다. 텍스트 이외의 바이너리에 대해서는 일반적으로 50% 내외의 압축률을 보일 뿐이며 특히 JPEG, ZIP, PDF 와 같은 타입은 이미 압축이 되어 있기 때문에 오히려 압축 크기가 커지는 오버 압축을 보이기도 한다. 이러한 현상을 반영하고 있는 것이 IIS 7.0의 기본 압축 설정이라 할 수 있다.

일반적으로 IIS 7.0의 압축에 대한 기본 MIME 타입을 바꾸어야 할 상황은 거의 발생하지 않으리라 본다. 필요에 따라 Office 파일을 압축해야 하는 경우가 발생할 수 있겠지만 Office 2007 파일들은 이미 압축이 되어 있는 상황이므로 미래에는 압축 MIME 타입을 손대야 하는 상황이 더욱 발생하지 않을 듯 싶다.

IIS 7.0에서 압축을 수행하는 MIME 타입을 변경하고자 한다면 관리자 권한을 요구하며 applicationHost.config 파일의 <httpCompression> 요소의 하위 요소인 <dynamicTypes> 요소의 내용을 수정해 주어야 한다. applicationHost.config 파일을 수정하는 것은 응가하고 밑을 안 닦은 것처럼 찜찜하기 짝이 없다. 이 파일에 대한 설정은 모든 웹 사이트, 웹 어플리케이션, 가상 디렉터리에 적용되기 때문이다.

MSDN 문서에 의하면 <httpCompression> 요소는 applicationHost.config 뿐만 아니라 루트 web.config 혹은 웹 어플리케이션의 web.config, 심지어 가상 디렉터리의 web.config 에서까지 <httpCompression> 요소를 정의하고 그 설정을 오버라이드 할 수 있는 것처럼 되어 있지만 필자가 직접 테스트 해 본 결과 구라인 듯하다. 별별 삽질을 다 해봤건만 applicationHost.config 파일의 내용만이 적용되었을 뿐, 어플리케이션 수준의 web.config 나 가상 디렉터리 수준의 web.config에서 설정된 <httpCompression> 요소는 아무런 효과도 없었다. 이러한 상황은 셋 중 하나이다. MSDN이 구라를 쳤거나, 필자가 설정을 잘 못했거나 아니면 MSDN과 필자가 모두 틀렸고 IIS 개발팀 만이 아는 방법이 있거나..... 혹시라도 독자들 중에 applicationHost.config 가 아닌 다른 곳에서 압축에 관련된 MIME 타입을 수정할 수 있었다면 필자에게도 좀 알려주는 호의를 베풀어주기 바라는 바이다.

Summary

이번 포스트에서는 IIS 7.0의 HTTP 압축에 대해 살펴보았다. IIS 7.0의 압축은 동적 콘텐츠를 압축해 주는 DynamicCompressionModule과 정적 콘텐트를 압축해 주는 StaticCompressionModule에 의해 작동되며 동적 콘텐츠는 HTTP 핸들러에 의해 처리되는 .aspx, .asmx, .asp 등을 말하며 정적 콘텐츠는 .htm이나 .jpg, .gif 등과 같이 HTTP 핸들러에 의해 처리되지 않고 단순히 파일이 그대로 다운로드 되는 것을 말한다.

IIS 7.0의 HTTP 압축은 이전 버전의 IIS에 비해 향상된 기능을 가지고 있다. IIS 7.0은 IIS 전체에 적용되는 압축 설정 뿐만 아니라 웹 사이트, 웹 어플리케이션, 가상 디렉터리 등 다양한 수준에 적용되는 압축 설정에 대한 UI를 가지고 있어서 이전 버전에 비해 훨씬 더 간편하게 HTTP 압축 설정을 수행할 수 있다.

또한 IIS 7.0의 HTTP 압축은 확장자가 아니라 콘텐츠의 MIME 타입에 대해 압축을 수행할 것인지 말 것인지를 결정한다. 압축을 수행할 MIME  타입은 IIS의 applicationHost.config 파일에 설정되어 있으며 XML이나 HTML 과 같이 텍스트에 대해서 압축을 수행하도록 기본 설정되어 있다.

HTTP 압축은 한정된 네트워크 대역폭(bandwidth)을 통해 보다 많은 사용자가 서버와 통신할 수 있도록 해주기 때문에 웹 서버의 전체적인 처리량(throughput)을 증가시켜주며 최종적으로 성능적인 향상을 가져올 수 있다. 하지만 CPU의 사용량이 증가하기 때문에 웹 서버의 CPU 사용량을 염두해 두고 사용 여부를 결정해야만 할 것이다. 이 세상엔 공짜는 없는 듯하다. 항상 그에 따른 댓가를 요구하니 말이다. 독자들도 고급 개발자, 전문가, 컨설턴트라는 위치를 얻기 위해서라면 부단히 노력을 해야만 할 것이다. 항상 그러하듯이 세상엔 공짜란 없으니깐 말이다.



Comments (read-only)
#re: HTTP Compression in IIS 7.0 / 어흥이 / 2008-06-30 오전 2:31:00
늦은 밤에 놀러온 보람이 있군요^^
쥔장께서 필력을 되찾으신건가요?
아뭏든 좋은글을 자주 대할 수 있어 매우매우 기쁩니다.
#re: HTTP Compression in IIS 7.0 / 잘 읽고 갑니다. / 2008-06-30 오전 11:36:00
감사합니다.
#re: HTTP Compression in IIS 7.0 / 엔틱스 / 2008-06-30 오전 11:47:00
선리플, 후감상 (3빠~!!!)
복잡한 내용일 듯 하니, 한줄 한줄 음미해가며 읽도록 하겠습니다. ^^;;
#re: HTTP Compression in IIS 7.0 / 탱옹 / 2008-06-30 오전 11:55:00
다니합사감~ 요세주 비준 나미세 년주01
#re: HTTP Compression in IIS 7.0 / 이경원 / 2008-06-30 오후 4:36:00
잘 읽었습니다..^^
#re: HTTP Compression in IIS 7.0 / 위시 / 2008-07-03 오후 3:04:00
잘읽고갑니다... 드디오 쥔장님의 멋진 글을 다시 읽을 수있게 되어서 기쁩니다.
#re: HTTP Compression in IIS 7.0 / wssplex / 2008-07-14 오후 2:01:00
오늘에서야,. 읽어보네요... 항상 주옥같은글 잘 보고 있습니다.^^
안된다고 하시길래 저도 해봤는데 안되더군요... -_-;;
iis 블로그를 보니깐,. <httpCompression> 요소는 서버 레벨에서만 가능하다고 합니다.
즉,. applicationHost.config 에서만 가능하고,.
<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Allow" />
의 속성중 name 외에는 쓸때없이 그냥 넣어 놓은게 아닐까 싶기도 하고요...
MSDN 문서 작성이 틀린게 아닌가 싶습니다... 말그대로 copy & paste.. ㅋㅎ....
TechNET 에서는 httpCompression 오버라이딩에 관련된 내용을 찾을수가 없네요.
#re: HTTP Compression in IIS 7.0 / 블로그쥔장 / 2008-07-14 오후 4:50:00
wssplex// <httpCompression> 섹션에 대해 한가지 추정되는 것으론
이 섹션을 사용하는 모듈이 Global 모듈이어서 작업 프로세스가 올라오는 동안
configuration을 읽지 않나 싶네요. 작업 프로세스가 구동되는 동안에는
어플리케이션 수준의 web.config 이건 디렉터리 수준의 web.config 나발 이건
아무것도 없을 테니깐요...
뭐 이렇게 생각하고 닥치고 있습니다... ㅎㅎ
#re: HTTP Compression in IIS 7.0 / wssplex / 2008-07-16 오후 4:10:00
물론,. temp 에 생성된 응용프로그램풀이 로드될때 applicationHost.config 을
참조하여 복사되므로,. 해당 config 파일을 수정하면,......
응용프로그램풀 별로 사이트를 분리하면 사이트 단위로 적용을 가능할것 같아요..^^;;
#re: HTTP Compression in IIS 7.0 / Videolar / 2008-11-12 오전 8:26:00
Nice article
#re: HTTP Compression in IIS 7.0 / 나무꾼 / 2009-08-10 오후 5:35:00
좋은 글 잘 읽었습니다.