[iis] IIS7 gzip 사용

IIS7이 js 및 css와 같은 정적 파일을 gzip으로 압축하도록하려면 어떻게해야합니까?



답변

구성

Web.config파일 에서 GZIP 압축을 완전히 활성화 할 수 있습니다 . 이것은 공유 호스팅에 있고 IIS를 직접 구성 할 수 없거나 구성을 대상으로하는 모든 환경간에 수행하려는 경우에 특히 유용합니다.

<system.webServer>
  <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="application/javascript" enabled="true"/>
      <add mimeType="*/*" enabled="false"/>
    </dynamicTypes>
    <staticTypes>
      <add mimeType="text/*" enabled="true"/>
      <add mimeType="message/*" enabled="true"/>
      <add mimeType="application/javascript" enabled="true"/>
      <add mimeType="*/*" enabled="false"/>
    </staticTypes>
  </httpCompression>
  <urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>

테스팅

압축이 작동하는지 여부를 테스트하려면 Chrome개발자 도구 또는 Firefox 용 Firebug를 사용하고 HTTP 응답 헤더가 설정되어 있는지 확인하십시오.

Content-Encoding: gzip

응답 코드가 304 (수정되지 않음)이면이 헤더가 표시되지 않습니다. 이 경우 완전 새로 고침 (새로 고침 버튼을 누르고있는 동안 Shift 또는 컨트롤 유지)을 수행하고 다시 확인하십시오.


답변

Windows 기능 제어판에서 기능을 활성화해야합니다.

IIS 기능 스크린 샷


답변

HttpModule의 글로벌 Gzip

최종 IIS 인스턴스 (공유 호스팅 …)에 액세스 할 수없는 경우이 코드를 모든 HttpApplication.Begin_Request 이벤트에 추가하는 HttpModule을 만들 수 있습니다.

HttpContext context = HttpContext.Current;
context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);
HttpContext.Current.Response.AppendHeader("Content-encoding", "gzip");
HttpContext.Current.Response.Cache.VaryByHeaders["Accept-encoding"] = true;

테스팅

Kudos, 테스트 없이는 해결책이 없습니다. Firefox 플러그인 ” Liveheaders ” 를 사용하고 싶습니다. 압축, 파일 크기 (서버의 파일 크기와 비교할 수 있음)를 포함하여 브라우저와 서버 사이의 모든 http 메시지에 대한 모든 정보를 보여줍니다.


답변

Windows 2012 r2 아래에서 찾을 수 있습니다.

여기에 이미지 설명을 입력하십시오


답변

Charlie가 언급 한 것처럼 Windows 기능에 기능을 추가하기 만하면됩니다 .Windows 10 또는 2012+ 서버에서 찾을 수없는 사람들은 다음과 같이 찾으십시오. 조금 고생했습니다

윈도우 10

여기에 이미지 설명을 입력하십시오

윈도우 서버 2012 R2

여기에 이미지 설명을 입력하십시오

윈도우 서버 2016

여기에 이미지 설명을 입력하십시오


답변

YSlow를 Firebug와 함께 사용하고 페이지 성능을 분석하면 YSlow는 페이지의 어떤 아티팩트가 gzip되지 않았는지 확실히 알려줍니다!


답변

aspx와 같은 동적 페이지를 압축하려고 시도하고 작동하지 않는 경우 옵션이 활성화되지 않았기 때문일 수 있습니다 (Windows 기능을 사용하여 Dynamic Content Compression 모듈을 설치해야 함).

http://support.esri.com/en/knowledgebase/techarticles/detail/38616