DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
HTTP Compression mit IIS 6

Seit HTTP 1.1 ist eine Möglichkeit zur kompression von HTML Daten eingebaut. HTML Daten lassen sich sehr gut komprimieren. So wird die übertragene Menge bis zu 90 % reduziert.
Der Benutzer muss gar nichts tun, wenn der Web Server die Compression (gzip/deflate) unterstützt wird sie automatisch vom Browser verwendet.

Gespeichert werden die kompriemierten Dateien in IIS Temporary Compressed Files, damit nicht jeder Request neu komprimiert werden muss.

Zur Konfiguration muss man über die MMC des IIS in den Eigenschaften der Web Sites, im Servcies Reiter die Kompression aktivieren. Dabei hat man die Option Static Files und Anwendungsdateien.

Leider bringt das im Ergebnis gar nichts. Wenn die Kompression wirkt, werden Dateien im vorher erwähnten Temporary Ordner erzeugt.

Nach langer Suche in der Konfiguration, fällt auf, das in den Webservice Extension all unbekannten ISAPI Erweiterungen verboten sind. Nun muss man Wissen, das genau diese Kompression über die ISAPI DLL mit dem Namen GZIP erledigt wird. Das ist ja einer der geänderten Sicherheitspunkte, das per default alles abgedreht ist.
Nun Abhilfe ist, ein neuen Eintrag zu erzeugen der auf die DLL zeigt und zb HTTPCompression heisst. Natürlich muss dann dies auch noch auf erlaubt/allowed gesetzt werden.

Vorsichtshalber sollte man jetzt den IIS neu starten mit IISRESET.

Damit sollte der Traffic schon ein Stück schrumpfen. Allerdings bleibt noch die Frage nach dynamischen Dateien wie ASPX. Dazu müssen wir direkt in die Datenbank des IIS gehen. Diese heisst Metabase und ist seit IIS6 ein XML File irgendwo unter \WINDOWS\system32\inetsrv.

Vorsicht bei Änderungen an der Metabase. Dies kann Ihren Webserver beeinträchtigen. Machen Sie eine Kopie der Datei Metabase.xml!

Die Metabase lässt sich mit einem Texeditor ändern. Suchen Sie nach den Einträgen IISCompressionScheme.

 <IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
  HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
  HcCreateFlags="0"
  HcDoDynamicCompression="TRUE"
  HcDoOnDemandCompression="TRUE"
  HcDoStaticCompression="FALSE"
  HcDynamicCompressionLevel="0"
  HcFileExtensions="htm
   html
   txt"
  HcOnDemandCompLevel="10"
  HcPriority="1"
  HcScriptFileExtensions="asp
   dll
   exe"
 >
</IIsCompressionScheme>
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
  HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
  HcCreateFlags="1"
  HcDoDynamicCompression="TRUE"
  HcDoOnDemandCompression="TRUE"
  HcDoStaticCompression="TRUE"
  HcDynamicCompressionLevel="0"
  HcFileExtensions="htm
   html
   txt"
  HcOnDemandCompLevel="10"
  HcPriority="1"
  HcScriptFileExtensions="asp
   dll
   exe"
 >
</IIsCompressionScheme>


Nun tragen Sie einfach unter HcScriptFileExtensions Ihre zusätzlichen Extensions ein (zb ASPX) Als Trennzeichen wird einfach ein Blank verwendet. Sie müssen dies zweimal tun für Deflate und GZIP Kompression.

Starten Sie den IIS neu!

Nun braucht Ihr Webserver mehr Prozessorleistung zum komprimieren und viel Platz zum speichern auf der Platte. Dafür wird weniger Bandbreite benötigt.

 

 


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 08.12.2003
  Gültig bis: 07.03.2004
14 Ratings
Bewertung: 91,4%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG