IT story

IIS7 gzip 사용

hot-time 2020. 4. 18. 09:38
반응형

IIS7 gzip 사용


IIS7에서 js 및 css와 같은 정적 파일을 gzip으로 압축하는 방법과 클라이언트로 보내기 전에 IIS7이 실제로 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 아래에서 찾을 수 있습니다.

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


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


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

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


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

윈도우 10

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

윈도우 서버 2012 R2

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

윈도우 서버 2016

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


아무것도 설치하지 않고 테스트하는 또 다른 쉬운 방법은 IIS 버전에 의존하지 않는 것입니다. 링크에 URL을 붙여 넣기 -SEO 점검

gzip 테스트

web.config에 추가하려면 http://www.iis.net/configreference/system.webserver/httpcompression


Firebug 애드온이 설치된 Firefox를 사용해보십시오. 나는 그것을 사용하고 있습니다; 웹 개발자를위한 훌륭한 도구입니다.

web.config를 사용하여 IIS7에서도 Gzip 압축을 활성화했습니다.


독일 / 도이치 서버와 싸워야하는 모든 가난한 사람들을 위해 :)

auf deutsch bitte schön

참고 URL : https://stackoverflow.com/questions/702124/enable-iis7-gzip

반응형