A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.
1 <?xml version="1.0" encoding="iso-8859-1" ?> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 5 <head> 6 <title>Eine Beispiel-Konfiguration für mod_gzip</title> 7 <meta name="author" content="Michael Schröpl" /> 8 <meta name="description" content="Eine ausführlich dokumentierte Beispiel-Konfiguration für das Apache-Zusatzmodul 'mod_gzip'" /> 9 <meta name="keywords" content="Apache, HTTP, encoding, gzip, Komprimierung, Konfiguration" /> 10 <style type="text/css"> 11 body{font-family:sans-serif;margin:0px 30px 0px 30px;} 12 h1{font-size:22px;margin-top:20px;} 13 h2{font-size:18px;margin-top:14px;} 14 small{font-size:80%;} 15 td{vertical-align:top;} 16 tt{font-weight:bold;} 17 code,tt{font-family:"Courier New",monospace;} 18 h1,h2{margin-bottom:1px;} 19 p,td{margin-top:3px;margin-bottom:3px;} 20 p,ul,ol,li{font-size:17px;line-height:22px;} 21 ul,ol,li{margin-top:0px;margin-bottom:0px;} 22 img{border-width:0;} 23 24 #nav{position:absolute;top:30px;left:0px;font-size:14px;width:170px;font-weight:bold;margin:2px 2px 2px 30px;} 25 #nav[id]{position:fixed;} 26 #nav img{margin:5px;} 27 #nav p, #nav a:hover, #nav a{display:block;padding:3px;margin:2px;width:150px;font-size:15px;line-height:18px;} 28 #content{position:absolute;left:220px;right:30px;} 29 #mail{text-align:right;} 30 #icon{width:190px;float:left;} 31 #mail,#icon{margin-top:30px;} 32 33 @media screen { 34 body{color:#000;background-color:#f8ebd9;} 35 h1{color:#666;} 36 h2{color:#840;} 37 code{color:#333;} 38 em{color:#900;} 39 tt{color:#909;} 40 h1,h2,code,em,tt{background-color:inherit;} 41 .new13192a{color:#inherit;background-color:#ffd;} 42 .new13261a{color:#inherit;background-color:#eff;} 43 .bugfix{color:#fff;background-color:#f00;font-weight:bold;padding:0px 4px;} 44 #nav a{color:#530;background-color:transparent;} 45 #nav a{text-decoration:none;} 46 #nav p, #nav a:hover{color:#000;background-color:#fff;} 47 #nav p {border:1px #660 solid;} 48 #nav a {border:1px #666 dotted;} 49 } 50 51 @media print { 52 #icon,#nav{display:none;} 53 #content{position:absolute;left:0px;right:0px;} 54 } 55 table.sections{margin-top:20px;} 56 table.sections td{border:solid 1px #55f;font-size:12px;padding:2px;} 57 table.sections td a{display:block;} 58 59 @screen { 60 table.sections td{color:#000;background-color:#eee;} 61 table.sections td a{color:#00f;background-color:transparent;} 62 } 63 pre{font-family:monospace;font-size:14px;} 64 pre strong{font-weight:bold;} 65 66 @media screen { 67 pre{color:#336;} 68 pre strong{color:#00c;} 69 pre, pre strong{background-color:inherit;} 70 } 71 </style> 72 </head> 73 74 <body> 75 76 <div id="nav"> 77 78 <img src="mod_gzip_logo.gif" height="47" width="102" alt="mod_gzip-Logo" /> 79 80 81 <a title="mod_gzip - was ist das überhaupt?" href="index.htm">mod_gzip</a> 82 83 84 85 <a title="Komprimierung von HTTP-Inhalten durch Content-Encoding" href="encoding.htm">Content-Encoding</a> 86 87 88 89 <a title="Welche Browser können mit 'Content-Encoding: gzip' umgehen?" href="browser.htm">Browser</a> 90 91 92 93 <a title="Wie gehen Firewall mit 'Content-Encoding: gzip' um?" href="firewalls.htm">Firewalls</a> 94 95 96 97 <p>Konfiguration</p> 98 99 100 101 <a title="Beschreibung sämtlicher mod_gzip-Status-Codes" href="status.htm">Status-Codes</a> 102 103 104 105 <a title="Mögliche Erweiterungen in künftigen Versionen von mod_gzip" href="enhancements.htm">Erweiterungen</a> 106 107 108 109 <a title="Zwischenspeicherung mod_gzip-komprimierter Daten durch Proxy-Server" href="cache.htm">Caching</a> 110 111 112 113 <a title="Versions-Historie und Änderungsprotokoll von mod_gzip" href="versions.htm">Versionen</a> 114 115 116 117 <a title="Andere Quellen zu mod_gzip" href="links.htm">Links</a> 118 119 120 </div> 121 122 <div id="content"> 123 124 <h1>Eine Beispiel-Konfiguration für <tt>mod_gzip</tt></h1> 125 126 <p>Der genaue Umfang der gewünschten Funktionen wird mit Hilfe zusätzlicher <em>Apache-Konfigurationsanweisungen</em> beschrieben, die durch die Einbindung des Moduls <tt>mod_gzip</tt> verfügbar werden.</p> 127 <p>Eine wirklich vollständige Dokumentation der Wirkung dieser Anweisungen existiert zur Zeit noch nicht; generell gilt, daß</p> 128 <ul> 129 <li>praktisch alles in jeder Umgebung einsetzbar ist, also wahlweise 130 <ul> 131 <li>im gesamten Server,</li> 132 <li>in Virtual Hosts,</li> 133 <li>in Verzeichnissen und sogar</li> 134 <li>in <code>.htaccess</code>-Dateien</li> 135 </ul>und 136 </li> 137 <li>im Wesentlichen die üblichen Überlagerungsverfahren von Apache gelten - ausgenommen die Anweisungen bezüglich der Auswahl zu komprimierender Inhalte, bei denen alles etwas komplizierter ist.</li> 138 </ul> 139 <p>Die nachfolgende Konfiguration ist ausdrücklich <em>nicht</em> dafür gedacht, gedankenlos übernommen zu werden - sie soll vielmehr ein Gefühl dafür liefern, wie viele Optionen verfügbar sind. Und es sind <em>viele</em> Optionen - jedenfalls dafür, daß man eigentlich 'nur komprimierte Ausgabedaten haben will' ...</p> 140 141 <table class="sections"> 142 <tr> 143 <td><a href="#loading">Modul laden</a></td> 144 <td><a href="#responsibilities">Zuständigkeiten</a></td> 145 <td><div class="new13261a"><a href="#precompressed">Vorkomprimiert</a></div></td> 146 <td><a href="#bureaucracy">Bürokratisches</a></td> 147 <td><a href="#data_management">Datenverwaltung</a></td> 148 <td><a href="#file_sizes">Dateigrößen</a></td> 149 <td><div class="new13261a"><a href="#requirements">Anforderungen</a></div></td> 150 <td><a href="#filters">Filter</a></td> 151 <td><a href="#transfer_encoding">Transfer-Kodierung</a></td> 152 <td><a href="#logging">Protokollierung</a></td> 153 <td><div class="new13192a"><a href="#proxy">Proxies</a></div></td> 154 </tr> 155 </table> 156 157 <pre> 158 ######################################## 159 ### Apache-Konfigurationsanweisungen ### 160 ### für mod_gzip 1.3.26.1a ### 161 ######################################## 162 <a id="loading"></a> 163 ################### 164 ### Modul laden ### 165 ################### 166 167 # --------------------------------------------------------------------- 168 # DLL laden / Win32: 169 # LoadModule gzip_module modules/ApacheModuleGzip.dll 170 # 171 # DSO laden / UNIX: 172 # LoadModule gzip_module modules/mod_gzip.so 173 # 174 # (keines von beiden, falls Modul statisch eingebunden; 175 <div class="new13192a"># der genaue Dateiname kann von der verwendeten Kompilierungsmethode 176 # dieses Moduls abhängen) 177 </div># --------------------------------------------------------------------- 178 179 <strong><IfModule mod_gzip.c></strong> 180 <a id="responsibilities"></a> 181 ####################### 182 ### Zuständigkeiten ### 183 ####################### 184 185 # --------------------------------------------------------------------- 186 # Soll mod_gzip überhaupt verwendet werden? 187 <strong>mod_gzip_on Yes</strong> 188 # (Insbesondere kann man mod_gzip in der zentralen Server-Konfiguration 189 # einschalten und durch diese Anweisung z. B. innerhalb bestimmter 190 # Verzeichnisse oder Virtual Hosts wieder ausschalten.) 191 # --------------------------------------------------------------------- 192 <a id="precompressed"></a> 193 ######################################## 194 ### Statisch vorkomprimierte Dateien ### 195 ######################################## 196 197 # --------------------------------------------------------------------- 198 # Soll mod_gzip selbst einen Teilbereich von 'Content-Negotiation' 199 # durchführen? 200 <strong>mod_gzip_can_negotiate Yes</strong> 201 # (wenn diese Option aktiv ist und eine statische Datei in komprimierter 202 # Form ausgeliefert werden soll, dann sucht mod_gzip nach einer statisch 203 # vorkomprimierten Version dieser Datei mit einer definierten zusätz- 204 # lichen Endung - siehe nächste Direktive - welche vorrangig ausge- 205 # liefert würde. Dies würde es erlauben, die wiederholte 206 # Komprimierung derselben statischen Datei zu vermeiden und somit CPU- 207 # Zeit zu sparen. 208 # Es ist kein dynamisches Caching dieser Datei vorgesehen; der Anwender 209 # ist bisher selbst für die Erstellung und Aktualisierung des Inhalts 210 # der vorkomprimierten Datei verantwortlich. 211 <div class="new13192a"># Seit Version 1.3.19.2a erkennt mod_gzip jedoch automatisch, ob eine 212 # statisch vorkomprimierte Datei älter ist als ihr unkomprimiertes 213 # Original und liefert in diesem Falle die Original-Datei aus - besser 214 # korrekte Daten liefern als veraltete ...) 215 </div># --------------------------------------------------------------------- 216 <div class="new13192a"># Endung (Suffix) für statisch vorkomprimierte Dateien 217 <strong>mod_gzip_static_suffix .gz</strong> 218 <strong>AddEncoding gzip .gz</strong> 219 # (Wirkung: siehe vorherige Direktive; diese Zeichenkette wird an den 220 # Namen der Original-Datei angefügt. 221 # Für die entsprechende Endung muß das Encoding 'gzip' explizit defi- 222 # niert werden; mod_gzip liefert diesen Wert nicht selbst aus, sondern 223 # erzeugt einfach eine Apache-interne Weiterleitung zu diesem URL. 224 # Deshalb ist die sonstige Apache-Konfiguration dafür zuständig, den 225 # Content-Encoding-Header passend zu setzen ... 226 # In Versionen vor 1.3.19.2a war dieser Wert nicht konfigurierbar.) 227 </div># --------------------------------------------------------------------- 228 <div class="new13261a"># Automatische Aktualisierung statisch vorkomprimierter Dateien 229 <strong>mod_gzip_update_static No</strong> 230 # (Falls auf 'Yes' gesetzt, bewirkt diese Direktive (neu seit Version 231 # 1.3.26.1a), daß mod_gzip jede als veraltet erkannte statisch vor- 232 # komprimierte Datei während der Anforderung automatisch aktualisiert, 233 # d. h. den Inhalt der ursprünglich angeforderten Datei komprimiert 234 # und damit die vorkomprimierte Variantendatei <em>überschreibt</em>! 235 # Bei jeder solchen automatischen Aktualisierung gibt mod_gzip eine Meldung 236 # mit dem Gewicht 'notice' in das Apache-error_log aus. 237 # Dabei liest mod_gzip den Inhalt des Originals direkt aus dessen Datei; 238 # dieser kann also während der Anforderung <em>nicht</em> durch andere 239 # Apache-Module interpretiert werden. Das ist möglicherweise <em>nicht</em>, 240 # was der Anwender möchte - hoffentlich aber das, was die meisten An- 241 # wender wollen, weil es auf diese Weise <em>schnell</em> funktioniert. 242 # Diese Anweisung sollte nur mit äußerster Vorsicht eingesetzt werden. 243 # wobei sichergestellt werden sollte, daß dabei keine wertvollen Dateien 244 # innerhalb des URL-Baums überschrieben werden. 245 # Dies ist <em>keine</em> Funktion für den Einsatz auf Massen-Hosting-Servern, 246 # vor allem, weil mod_gzip Zugriffsprobleme haben könnte - die Benutzer- 247 # kennung, unter welche die Apache-Prozesse laufen, benötigt Schreib- 248 # recht auf die vorkomprimierten Dateien sämtlicher Benutzer, was nicht 249 # automatisch der Fall sein dürfte.) 250 # [Fehlerbehandlung durch mod_gzip in diesem Fall??? Was wird ausgeliefert?] 251 </div># --------------------------------------------------------------------- 252 <a id="bureaucracy"></a> 253 ###################### 254 ### Bürokratisches ### 255 ###################### 256 257 # --------------------------------------------------------------------- 258 # Statusanzeige für mod_gzip 259 <strong>mod_gzip_command_version '/mod_gzip_status'</strong> 260 # (definiert einen URL - bzw. einen Teil-String eines solchen - zur 261 # Anzeige des Status von mod_gzip; aus Gründen der Geheimhaltung 262 # kann dieser URL pro Installation individuell definiert und über 263 # einen <Location>-Abschnitt zugriffsgeschützt werden) 264 # --------------------------------------------------------------------- 265 # Die Status-Anzeige hat folgendes Aussehen: 266 # mod_gzip is available... 267 # mod_gzip_version = 1.3.26.1a 268 # mod_gzip_on = Yes/No 269 # Sie liefert also die Information, 270 # - daß mod_gzip auf dem Server installiert ist und korrekt arbeitet, 271 # - welche Version installiert ist und 272 # - ob mod_gzip für diese Location auf 'aktiv' gesetzt wurde 273 # (-> mod_gzip_on) 274 # --------------------------------------------------------------------- 275 <a id="data_management"></a> 276 ####################### 277 ### Datenverwaltung ### 278 ####################### 279 280 # --------------------------------------------------------------------- 281 # Arbeitsverzeichnis für temporäre Dateien und den Komprimierungs-Cache 282 # Falls nicht angegeben, werden als Defaultwerte verwendet: 283 # [Win32=c:\temp], [UNIX=/tmp] 284 # <strong>mod_gzip_temp_dir /tmp</strong> 285 # (Dieses Verzeichnis muß bereits existieren, und die Benutzerkennung, 286 # unter welcher der Apache-Server läuft, muß Lese- und Schreibrecht in 287 # diesem Verzeichnis haben. 288 # Anders als bei sonstigen Apache-Direktiven muß hier ein absoluter 289 # Pfadname angegeben werden; eine relative Angabe wird nicht auf 290 # ServerRoot bezogen interpretiert. 291 # Es darf KEIN '/' am Ende dieses Verzeichnis-Pfadnamens angegeben werden. 292 # Für optimale Performance sollte dieses Verzeichnis auf einer RAM-Disk 293 # liegen, falls das Dateisystem nicht bereits selbst gut cached.) 294 # --------------------------------------------------------------------- 295 # Aufheben temporärer Arbeitsdateien [Yes, No] 296 <strong>mod_gzip_keep_workfiles No</strong> 297 # (eine Datei pro HTTP-Anforderung - nur für Debugging-Zwecke auf 'Yes' 298 # setzen!) 299 # --------------------------------------------------------------------- 300 <a id="file_sizes"></a> 301 ################### 302 ### Dateigrößen ### 303 ################### 304 305 # --------------------------------------------------------------------- 306 # Minimalgröße (in Bytes) einer zu komprimierenden Datei 307 <strong>mod_gzip_minimum_file_size 500</strong> 308 # (Bei sehr kleinen Dateien bringt die Komprimierung an absolutem Betrag 309 # nur noch wenig Gewinn [es sind meistens immer noch 50% Einsparung 310 # beim Inhalt, aber weitere ca. 500 Bytes an HTTP- und TCP-Headers 311 # bleiben immer unkomprimiert], bedeuten aber dennoch sowohl für den 312 # Client als auch für den Server zusätzliche CPU-Last.) 313 # --------------------------------------------------------------------- 314 # Maximalgröße (in Bytes) einer zu komprimierenden Datei 315 <strong>mod_gzip_maximum_file_size 500000</strong> 316 # (Bei sehr großen Dateien kann die Komprimierung eventuell sehr lange 317 # dauern und damit den Beginn der Übertragung entsprechend verzögern. 318 # Außerdem verhindert eine Begrenzung an dieser Stelle, daß eine be- 319 # liebig große dynamische Ausgabe, etwa durch eine Endlossschleife in 320 # einem CGI-Skript - oder gar der Versuch, streaming data zu kompri- 321 # mieren - zu einer beliebig großen temporären Datei bei der 322 # Komprimierung führt und damit die gesamte Festplatte voll schreibt. 323 # Andererseits bewirkt die Komprimierung natürlich bei großen Dateien 324 # eine subjektiv deutlicher spürbare Verbesserung ... man sollte 325 # diesen Wert also sehr genau den eigenen Anforderungen anpassen.) 326 # --------------------------------------------------------------------- 327 # Maximalgröße (in Bytes) einer im Hauptspeicher zu komprimierenden Datei 328 <strong>mod_gzip_maximum_inmem_size 60000</strong> 329 # (größere Dateien werden ins Arbeitsverzeichnis komprimiert; diesen 330 # Wert ggf. dem verfügbaren RAM des Servers anpassen. 331 # In mod_gzip 1.3.19.x werden größere Werte automatisch auf 60000 332 # limitiert, weil manche Betriebssysteme Probleme bei Speicherzuweisungen 333 # von mehr als 64 kB am Stück haben sollen.) 334 # --------------------------------------------------------------------- 335 <a id="requirements"></a> 336 ##################### 337 ### Anforderungen ### 338 ##################### 339 340 # (siehe Kapitel über <a href="cache.htm#vary-1.3.19.2a">Caching</a> zu Problemen bei der Verwendung dieser 341 # Direktiven.) 342 # --------------------------------------------------------------------- 343 # Mindestens verlangte HTTP-Version des Client 344 # Erlaubte Werte: 1000 = HTTP/1.0, 1001 = HTTP/1.1, ... 345 # Diese Anweisung verwendet dieselben numerischen Protokoll-Bezeichnungen 346 # wie der Apache selbst intern 347 <strong>mod_gzip_min_http 1000</strong> 348 # (Damit kann man veraltete Browser, Suchmaschinen etc. vom Komprimie- 349 # rungsverfahren ausschließen: Wenn der User-Agent sich selbst nicht 350 # als fähig deklariert, mindestens den hier angegebenen HTTP-Level zu 351 # verstehen, dann werden nur unkomprimierten Daten an ihn versendet 352 # - egal, was er ansonsten über sich behauptet. 353 # Der Wert '1001' schließt insbesondere Netscape 4.x aus sowie 354 # eine Reihe von Proxy-Servern.) 355 # --------------------------------------------------------------------- 356 <div class="new13192a"># Zu behandelnde HTTP-Methoden 357 # Erlaubte Werte: 'GET', 'POST' oder beide Angaben. 358 <strong>mod_gzip_handle_methods GET POST</strong> 359 # (Mit dieser Direktive kann man insbesondere POST-Requests von der 360 # Komprimierung ausschließen. Es sind Fälle bekannt, in denen 361 # die Verarbeitung solcher Anforderungen durch frühere mod_gzip- 362 # Versionen Probleme verursachen konnte. 363 # In Versionen vor 1.3.19.2a war dieser Wert nicht konfigurierbar.) 364 </div># --------------------------------------------------------------------- 365 <a id="filters"></a> 366 ############## 367 ### Filter ### 368 ############## 369 370 # --------------------------------------------------------------------- 371 # Welche Dateien sollen komprimiert werden? 372 # 373 # Die Reihenfolge innerhalb jeder der beiden Phasen ist unwichtig, 374 # aber um die Komprimierung des Inhalts eines Requests auszulösen, 375 # a) <em>muß der Request in jeder der beiden Phasen mindestens eine</em> 376 # <em>include-Regel erfüllen</em> und 377 # b) <em>darf in keiner der beiden Phasen eine exclude-Regel erfüllen.</em> 378 # Dieser Regelsatz ist nicht minimal, sondern nur als Beispiel gedacht. 379 # 380 # Phase 1: (reqheader, uri, file, handler) 381 # ======================================== 382 # (siehe Kapitel über <a href="cache.htm#useragent">Caching</a> zu Problemen bei der Verwendung von 383 # Filterregeln des Typs 'reqheader'.) 384 # 385 # NEIN: Bestimmte defekte Browser, die zwar gzip-komprimierte Inhalte 386 # anfordern, aber dann den Inhalt nicht verstehen 387 <strong>mod_gzip_item_exclude reqheader "User-agent: Mozilla/4.0[678]"</strong> 388 # 389 # JA: HTML-Dokumente 390 <strong>mod_gzip_item_include file \.html$</strong> 391 # 392 # NEIN: Include-Dateien/JavaScript & CSS (wegen Netscape4-bugs) 393 <strong>mod_gzip_item_exclude file \.js$</strong> 394 <strong>mod_gzip_item_exclude file \.css$</strong> 395 # 396 # JA: CGI-Skripte 397 <strong>mod_gzip_item_include file \.pl$</strong> 398 <strong>mod_gzip_item_include handler ^cgi-script$</strong> 399 # 400 # Phase 2: (mime, rspheader) 401 # =========================== 402 # JA: HTML, Textdateien, Apache-Directory-Listings 403 <strong>mod_gzip_item_include mime ^text/html$</strong> 404 <strong>mod_gzip_item_include mime ^text/plain$</strong> 405 <strong>mod_gzip_item_include mime ^httpd/unix-directory$</strong> 406 # 407 # NEIN: Bilder (GIF etc., das bringt fast nie etwas) 408 <strong>mod_gzip_item_exclude mime ^image/</strong> 409 # --------------------------------------------------------------------- 410 # Tatsächlich prüft mod_gzip jeweils nur die ersten 4 Zeichen 411 # des 1. Operanden (im Falle von <strong>uri</strong> sogar nur die ersten 2 Zeichen, 412 # um auch Werte wie <strong>url</strong> zu erlauben). 413 # --------------------------------------------------------------------- 414 # Die Tabelle der mod_gzip_item-Regeln (<strong>include</strong> und <strong>exclude</strong>) kann nicht 415 # mehr als 256 Einträge aufnehmen; wird diese Anzahl überschritten, 416 # dann gibt mod_gzip die Meldung <cite>"mod_gzip: ERROR: Item index is full"</cite> 417 # aus und meldet einen Konfigurationsfehler an den Apache-Server. 418 # --------------------------------------------------------------------- 419 # Die hier beschriebenen Werte der Direktiven sind darauf ausgelegt, 420 # die zu komprimierenden Anforderungen <em>möglichst exakt</em> zu beschreiben. 421 # Gerade bei den <strong>mime</strong>-Regeln sei jedoch angemerkt, daß der (von 422 # mod_gzip für diese Regel ausgewertete) HTTP-Header 'Content-Type' in 423 # einigen Fällen nicht nur einen MIME-Type, sondern zusätzlich auch 424 # eine Zeichensatzbeschreibung (charset) enthält. 425 # Sollte dies bei den zu verarbeitenden Anforderungen der Fall sein, 426 # dann muß das Zeichen '$' am Ende des jeweiligen Wertes entfernt 427 # werden, so daß nun nur noch der Präfix dieses Wertes auf 428 # Übereinstimmung geprüft wird. 429 # --------------------------------------------------------------------- 430 <a id="transfer_encoding"></a> 431 ########################## 432 ### Transfer-Kodierung ### 433 ########################## 434 435 # --------------------------------------------------------------------- 436 # Erlaube mod_gzip, den HTTP-Header-Eintrag 437 # 'Transfer-encoding: chunked' 438 # zu eliminieren und zu einem (komprimierbaren) Paket zusammenzufassen 439 <strong>mod_gzip_dechunk Yes</strong> 440 # Das wird für diverse dynamisch generierte Inhalte benötigt, vor allem 441 # für CGI- und SSI-Seiten, aber auch für Seiten, die durch Java- 442 # Servlet-Interpretern etc. erzeugt werden. 443 # --------------------------------------------------------------------- 444 <a id="logging"></a> 445 ####################### 446 ### Protokollierung ### 447 ####################### 448 449 # --------------------------------------------------------------------- 450 # erweiterte Protokoll-Format-Schablone (zum Test der Komprimierungswirkung) 451 <strong>LogFormat "%h %l %u %t \"%V %r\" %<s %b mod_gzip: %{mod_gzip_result}n In:%{mod_gzip_input_size}n -< Out:%{mod_gzip_output_size}n = %{mod_gzip_compression_ratio}n Prozent." common_with_mod_gzip_info2</strong> 452 # --------------------------------------------------------------------- 453 # zusätzliche Protokolldatei erzeugen 454 <strong>CustomLog logs/mod_gzip.log common_with_mod_gzip_info2</strong> 455 # (man kann natürlich auch sein normales Logfile umdefinieren, aber 456 # das will man ggf. formatkompatibel für die Auswertung mit Standard- 457 # Web-Analysetools behalten. Also machen wir uns einfach noch ein Logfile.) 458 # --------------------------------------------------------------------- 459 # Volumenberechnung der ausgelieferten Dateien im Apache-access_log: 460 # Größe des HTTP-Headers in Bytes bei der Ausgabe mitzählen 461 <strong>mod_gzip_add_header_count Yes</strong> 462 # (das ist dann mehr als der reine Dokument-Inhalt, es beschreibt aber 463 # den tatsächlich verursachten Traffic des gesamten HTTP-Requests 464 # realistischer) 465 # --------------------------------------------------------------------- 466 467 <a id="proxy"></a> 468 <div class="new13192a">############### 469 ### Proxies ### 470 ############### 471 472 # --------------------------------------------------------------------- 473 # Senden eines 'Vary'-HTTP-Headers 474 <strong>mod_gzip_send_vary Yes</strong> 475 # (siehe Kapitel über <a href="cache.htm#vary-1.3.19.2a">Caching</a> zu dieser Direktive.) 476 # <em>Nicht ändern, ohne genau zu wissen, was man tut!</em> 477 # --------------------------------------------------------------------- 478 </div> 479 <strong></IfModule></strong> 480 </pre> 481 482 <p><a id="LoadModule"></a>Bei dynamischer Einbindung dieses Moduls ist vor allem zu beachten, daß <tt>mod_gzip</tt> bei mehreren vorliegenden <code>LoadModule</code>-Anweisungen als <em>letzte</em> angegeben werden sollte.</p> 483 <p>Apache baut nämlich aus den <code>LoadModule</code>-Anweisungen intern einen Stapel, der später <em>in umgekehrter Reihenfolge</em> ausgewertet wird.</p> 484 <p><tt>mod_gzip</tt> hängt sich in die interne <code>type_checker</code>-Routine des Apache; von allen Modulen, die dies tun <small>(z. B. auch ColdFusion und SSL)</small>, wird aber nur die <em>erste</em>, die sich selbst als zuständig für die Bearbeitung einer Anforderung erklärt, wirklich von Apache aufgerufen. <tt>mod_gzip</tt> muß also inbesondere <em>vor</em> denjenigen Modulen aktiviert werden, deren Ausgabe es zu sich selbst umleiten und dann nachverarbeiten können soll - sofern diese Module selbst ebenfalls die <code>type_checker</code>-Schnittstelle benutzen ... tun sie das nicht, dann <em>kann</em> es auch unabhängig von der Reihenfolge dieser Anweisungen funktionieren.</p> 485 <p>In der Startmeldung von Apache <small>(die u. a. im Apache-Error-Log zu finden ist)</small> werden Module, welche eine eigene Versionskennung besitzen, ggf. aufgezählt, und zwar in derjenigen Reihenfolge, in der sie in der Modul-Kette vorliegen; dort muß <tt>mod_gzip</tt> also <em>vor</em> anderen Modulen auftauchen, deren Ausgaben es komprimieren soll.</p> 486 <p>Ich selbst habe <tt>mod_gzip</tt> im Unterverzeichnis <code>src/modules/extra/</code> des Apache-Quelltext statisch übersetzt; das Apache-Konfigurationsskript <code>configure</code> weiß, was es in diesem Fall zu tun hat.</p> 487 488 <div id="icon"> 489 <a href="http://validator.w3.org/check/referer"><img alt="" title="valid XHTML 1.1" height="31" width="88" src="valid-xhtml11.png" /></a><a href="http://jigsaw.w3.org/css-validator/check/referer"><img alt="" title="valid CSS" height="31" width="88" src="valid-css.png" /></a> 490 </div> 491 492 493 <p id="mail">(<a href="mailto:michael.schroepl@gmx.de?subject=mod_gzip">Michael Schröpl</a>, 2002-09-28)</p> 494 495 </div> 496 497 </body> 498 </html>