programing

IIS7에서 작동하는 gzip 압축을 어떻게 얻을 수 있습니까?

lastmoon 2023. 6. 21. 22:55
반응형

IIS7에서 작동하는 gzip 압축을 어떻게 얻을 수 있습니까?

및 하고 두 개의 했습니다.web.config값 의나적의서어가치관있에용▁at.Virtual Folder제가 알기로는 서버나 사이트 수준에서 압축을 더 이상 활성화할 필요가 없고 web.config 파일을 사용하여 폴더 단위로 압축을 관리할 수 있습니다.

는 제 에 두 ..config앱을 을 사용자 한 파일: 의 앱 gzip 사용정하기해위정설일파한내지:

<httpCompression dynamicCompressionDisableCpuUsage="90"
    dynamicCompressionEnableCpuUsage="0">
  <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
  <dynamicTypes>
    <remove mimeType="*/*"/>
    <add mimeType="*/*" enabled="true" />
  </dynamicTypes>
</httpCompression>
<urlCompression doDynamicCompression="true"
    dynamicCompressionBeforeCache="true" />

하지만 앱을 실행해보니 내 페이지 크기가 같기 때문에 gzip이 사용되지 않는다는 것을 확실히 알 수 있습니다.저는 또한 FireFox용 YSlow를 사용하고 있는데, 이것은 또한 제 페이지가 gzip되지 않는다는 것을 확인시켜줍니다.

내가 여기서 뭘 놓쳤지요?IIS6에서는 파일 형식을 지정하고 압축 수준을 0-10 사이로 설정하는 간단한 문제였습니다.파일 형식이나 압축 수준을 지정할 필요성이 문서화되지 않은 이유는 기본값이 파일 형식을 포함하는 것처럼 보이고 수준이 표시되지 않기 때문입니다.

forums.iis.net 에 iis 7 베타 기간 동안 이에 대한 스레드가 있었습니다.모듈을 설치하지 않은 것으로 드러났지만, 첫 문장에서 제외한 것처럼 들립니다.

Microsoft의 주요 조언은 실패한 요청 추적을 활성화하여 무엇이 잘못되고 있는지 알아내는 것이었습니다.이 기능은 IIS7의 가장 잘 알려지지 않은 기능 중 하나일 수도 있지만 가장 강력한 기능 중 하나입니다.

  • IIS 관리자를 엽니다.
  • 사이트로 이동하여 작업 창(맨 오른쪽)의 '구성' 섹션에서 '추적 요청 실패...'를 클릭합니다.
  • 'enable'을 클릭합니다.
  • 그런 다음 기능 보기에서 '요청 추적 실패 규칙'을 클릭합니다.추가를 클릭하고 다음으로 상태 코드에 200을 입력한 다음 마침을 클릭합니다.

수행 창에 "실패한 요청 추적"이 표시되지 않으면 "역할 서비스 추가" 마법사(상태 및 진단\)를 사용하여 기능을 서버에 추가해야 합니다.추적) 또는 웹 플랫폼 설치 프로그램(제품\)을 통해서버\IIS:추적)을 클릭한 다음 IIS 관리자를 닫았다가 다시 엽니다.

다음으로 테스트를 다시 실행합니다.그러면 검사할 수 있는 로그 정보가 생성됩니다.

c:\inetpub\logs\를 찾습니다.ReqLogFiles\w3svcx에 실패했습니다.fr000xx.xml이라는 이름의 파일 묶음이 표시됩니다.브라우저에서 해당 항목 중 하나를 엽니다.(참고로 이러한 파일을 복사할 경우 freb.xsl이 있는지 확인하십시오.또한 freb.xsl을 삭제하지 마십시오. 삭제할 경우 전체 디렉토리를 삭제하거나 다른 위치에서 복사하십시오. IIS는 폴더당 한 번만 디렉토리를 생성합니다.)

'request details' 탭을 클릭하고 'complete request trace'를 선택합니다.페이지에서 '압축'을 검색합니다. 한 번은 정적 콘텐츠, 한 번은 동적 콘텐츠 등 여러 영역에서 찾을 수 있습니다.

둘 다 찾지 못하면 IIS가 올바르게 구성되지 않습니다.파일을 찾으면 compression_success 및 compression_do 뒤에 파일이 표시됩니다.성공은 자명합니다. 'do'는 성공이 무엇을 했는지 나타냅니다. 제 경우에는 "Original Size 1462784 Compressed Size 179482"를 표시했습니다.

당신의 것이 작동하지 않기 때문에, 당신이 문제를 해결하는 데 도움이 되는 다른 것을 볼 수 있기를 바랍니다.

웹 사이트의 작업 창에서 실패한 요청 추적을 사용 불가능으로 설정하면 이 옵션을 해제해야 합니다.

비슷한 문제가 있었는데 IIS7에서 동적 CPU 기반 조절을 수행하는 것으로 나타났습니다.

http://www.iis.net/ConfigReference/system.webServer/httpCompression

dynamicCompressionDisableCpuUsage

선택적 unt 특성입니다.

동적 압축을 사용하지 않도록 설정할 CPU 사용률(%)을 지정합니다.

참고: 이 특성은 동적 압축이 해제되는 CPU 상한으로 작동합니다.CPU 사용률이 dynamicCompressionEnableCpuUsage 특성에 지정된 값 아래로 떨어지면 동적 압축이 다시 사용되도록 설정됩니다.

기본값은 90입니다.


동적 압축CPU 사용

선택적 unt 특성입니다.

동적 압축을 사용할 CPU 사용률(%)을 지정합니다.값은 0에서 100 사이여야 합니다.평균 CPU 활용률은 30초마다 계산됩니다.

참고: 이 특성은 동적 압축이 설정된 CPU 하한으로 작동합니다.CPU 사용률이 dynamicCompressionDisableCpuUsage 특성에 지정된 값을 초과하면 동적 압축이 사용되지 않도록 설정됩니다.

기본값은 50입니다.

기본값을 기록합니다. IIS7이 CPU 사용량의 90%에 도달하면 CPU 사용량이 50% 미만으로 떨어질 때까지 모든 동적 gzip 콘텐츠가 비활성화됩니다!

또한 GZIP의 실제 CPU 비용에 대한 몇 가지 훌륭한 권장 사항과 벤치마크가 있습니다.

http://weblogs.asp.net/owscott/archive/2009/02/22/iis-7-compression-good-bad-how-much.aspx

간단히 말해서, 200kb를 훨씬 초과하는 동적 페이지를 정기적으로 가지고 있지 않는 한, 문제가 되지 않습니다.

John W의 훌륭한 조언에 따라, 나도 범인을 찾기 위해 로깅을 활성화했지만, 실패의 이유는 다른 것으로 밝혀졌습니다.

STATIC_COMPRESSION_NOT_SUCCESS 
Reason 14 
Reason NOT_FREQUENTLY_HIT

간단히 말해서, 페이지를 충분히 자주 누르지 않으면 IIS7이 압축할 가치가 없다고 생각하는 것 같은데, 이는 제가 보기에는 좀 이상합니다.그럼에도 불구하고, 이 경우에는 로컬 컴퓨터에서 테스트하려고 했기 때문에 말이 됩니다.

페이지에 따르면 기본값은 페이지를 10초 이내에 2번 눌러야 "자주 적중"할 수 있는 것으로 나타납니다.원하는 경우 applicationHost.config의 기본값(%systemroot%\)을(를) 재정의할 수 있습니다.윈도우\System32\inetsrv\config).적어도 나에게는 그것은 잠긴 속성이기 때문에 당신은 당신 자신의 web.config에서 그것을 재정의할 수 없을 것입니다.

<serverRuntime frequentHitThreshold="1" />

또한 SO는 이미 여기에 다음과 같은 답변을 가지고 있습니다.IIS7에서 gzip 파일은 이러한 방식으로 유지되지 않습니다.

프로그램 추가/제거에서 동적 압축을 설치하여 문제를 해결했습니다.

시스템에서.Web.config 파일의 webServer 섹션에서 다음 행을 추가합니다.

<remove fileExtension=".js" />  
<mimeMap fileExtension=".js" mimeType="application/x-javascript" />  

IIS7의 압축 구성표는 기본적으로 활성화되어 있지만 압축할 단일 javascript mime 유형인 application/x-javascript만 매핑합니다.위의 행을 추가하면 IIS에서 모든 .js 파일에 MIME 유형을 지정하여 압축이 작동하도록 합니다.

정적 압축을 켭니다. 동적 압축은 asp, php, aspx 등과 같은 동적 페이지를 위한 것입니다.

다음은 압축을 위한 IIS 구성 참조 링크입니다.

나에게 그것은 설정으로 판명되었습니다.

noCompressionForProxies

우리가 여기 대리인이기 때문에...프록시와 voila, compression에서 벗어났습니다.

언급URL : https://stackoverflow.com/questions/786638/how-can-i-get-gzip-compression-in-iis7-working

반응형