lehrerbibliothek.deDatenschutzerklärung
Die Apache Server 2 Bibel
Die Apache Server 2 Bibel




Mohammed Kabir

mitp-Verlag
EAN: 9783826608964 (ISBN: 3-8266-0896-8)
864 Seiten, paperback, 18 x 24cm, 2003, 2. überarbeitete und erweiterte Auflage mit CD-ROM

EUR 39,95
alle Angaben ohne Gewähr

Umschlagtext
Dieses Buch bietet eine umfassende Darstellung aller Aspekte, die bei der Administration des meistverwendeten Webservers relevant sind. Anhand nachvollziehbarer Beispiele aus der Alltagspraxis führt Sie der Autor durch sämtliche Einzelheiten - von der Installation und Konfiguration über die Website-Administration bis hin zu serverseitigen Anwendungen, Sicherheits- sowie Tuning- und Performancefragen. Es werden alle Funktionen des Apache

beschrieben. Konkrete Vorgehensweisen und Praxistipps machen dieses Buch zu

einem unverzichtbaren Handbuch und Nachschlagewerk.



Aus dem Inhalt:

• Einrichten eines lauffähigen Systems: Systemanforderungen, Installation, Konfiguration, Module

• Kompilieren und Binärinstallation der Quellen

• Apache an Ihr System anpassen

• Virtuelle Websites mit Apache erstellen und verwalten

• Serverperformance mit Log-Analyzern überwachen

• Benutzerauthentifizierung und -autorisierung

• Einen Proxy-Server auf der Basis von Apache aufbauen

• Web-lnteraktionen mit FastCGI, PHP, Perl, SSI und Java Servlets steuern

• Apache für Win32-Systeme konfigurieren

• Ein Hochverfügbarkeits-Netzwerk mit Apache erstellen

• Interaktive Websites mit JSP-Servlets, CGI- und mod_perl-Skripten erstellen



Auf der Buch-CD-ROM:

• Apache 2 Webserver

• Tomcat, PHP, Perl, mod_perl, MySQL und andere Open-Source-Tools für dynamische Webseiten

• OpenSSL- und ApacheSSL- Sicherheitssoftware
Inhaltsverzeichnis
Vorwort 23
So ist dieses Buch aufgebaut 23


TEIL I: Los geht's 25

1 Der Apache - Die Nummer Eins unter den Webservern 27
1.1 Apache - Weiter auf dem Kriegspfad 28
1.2 Apache - Die frühen Jahre 29
1.3 Was bietet der Apache? 29
1.4 Die Architektur des Apache 2.0 31
1.4.1 Multiprozess-Module 31
1.4.2 Filtern von Ein-/Ausgaben 33
1.4.3 Ein neuer CGI-Daemon 33
1.5 Das Apache-Lizenz-Modell 35

2 Download und Installation 37
2.1 Die offizielle Quelle des Apache-Servers 37
2.2 Systemvoraussetzungen 38
2.2.1 Voraussetzungen für die Installation aus dem Quelltext 38
2.2.2 Voraussetzungen für den Betrieb eines Webservers 40
2.3 Download der Software 42
2.4 Installation des Servers aus den Quelldateien 43
2.4.1 Konfigurieren der Apache-Quellen 44
2.4.2 Fortgeschrittene Konfiguration für stark frequentierte Sites 49
2.4.3 Übersetzen und Installieren des Apache 51
2.5 Installieren von RPM-Paketen 54
2.6 Mit der Entwicklung Schritt halten 54

3 Einrichtung und Konfiguration 55
3.1 Konfiguration des Servers 55
3.1.1 Konfiguration der globalen Umgebung 60
3.1.2 Konfiguration des Standard-Servers 65
3.2 Starten und Stoppen des Servers 78
3.2.1 Apache starten 78
3.2.2 Neustart des Apache 81
3.2.3 Apache stoppen 81
3.3 Testen des Servers 82

4 Die Kern- und MPM-Direktiven 85
4.1 Kontexte der Direktiven 86
4.1.1 Konfigurationskontext 87
4.1.2 Container-Kontext 87
4.1.3 Verzeichniskontext 89
4.2 Allgemeine Konfigurationsdirektiven 89
4.2.1 AccessFileName 90
4.2.2 AddDefaultCharset 91
4.2.3 ContentDigest 91
4.2.4 DefaultType 92
4.2.5 DocumentRoot 92
4.2.6 ErrorDocument 93
4.2.7 95
4.2.8 95
4.2.9 Include 96
4.2.10 Options 97
4.2.11 Port 99
4.2.12 ServerAdmin 100
4.2.13 ServerName 100
4.2.14 ServerRoot 103
4.2.15 ServerSignature 103
4.2.16 ServerTokens 104
4.2.17 SetInputFilter 104
4.2.18 SetOutputFilter 104
4.3 Direktiven zur Steuerung der Performance und zur Ressourcenkonfiguration 105
4.3.1 Steuerung der Apache-Prozesse 105
4.3.2 Persistente Verbindungen 107
4.3.3 Verwaltung der Systemressourcen 109
4.3.4 Einsatz dynamischer Module 111
4.4 Direktiven in Standard-Containern 112
4.4.1 112
4.4.2 114
4.4.3 114
4.4.4 115
4.4.5 115
4.4.6 116
4.5 Direktiven für virtuelle Hosts 116
4.5.1 NameVirtualHost 117
4.5.2 ServerAlias 118
4.5.3 ServerPath 118
4.5.4 119
4.6 Aufzeichnungsdirektiven 120
4.6.1 LogLevel 120
4.6.2 ErrorLog 121
4.6.3 PidFile 121
4.6.4 ScoreBoardFile 122
4.7 Authentifizierungs- und Sicherheitsdirektiven 122
4.7.1 AllowOverride 123
4.7.2 AuthName 123
4.7.3 AuthType 124
4.7.4 HostNameLookups 124
4.7.5 IdentityCheck 125
4.7.6 126
4.7.7 126
4.7.8 LimitRequestBody 126
4.7.9 LimitRequestFields 127
4.7.10 LimitRequestFieldsize 127
4.7.11 LimitRequestLine 127
4.7.12 Require 128
4.7.13 Satisfy 129
4.7.14 ScriptInterpreterSource 130
4.8 Spezielle Anweisungen für das Threaded-MPM 130
4.8.1 CoreDumpDirectory 130
4.8.2 Group 131
4.8.3 Listen 131
4.8.4 ListenBacklog 132
4.8.5 LockFile 132
4.8.6 MaxClients 132
4.8.7 MaxRequestsPerChild 133
4.8.8 MaxSpareThreads 133
4.8.9 MinSpareThreads 134
4.8.10 SendBufferSize 134
4.8.11 StartServers 135
4.8.12 ThreadsPerChild 135
4.8.13 User 136
4.9 Spezielle Anweisungen für das Perchild-MPM 137
4.9.1 AssignUserID 137
4.9.2 ChildPerUserID 138
4.9.3 ConnectionStatus 138
4.9.4 CoreDumpDirectory 138
4.9.5 Group 138
4.9.6 Listen 139
4.9.7 ListenBacklog 139
4.9.8 LockFile 139
4.9.9 MaxRequestsPerChild 139
4.9.10 MaxSpareThreads 139
4.9.11 MaxThreadsPerChild 139
4.9.12 MinSpareThreads 139
4.9.13 NumServers 139
4.9.14 PidFile 140
4.9.15 ScoreBoardFile 140
4.9.16 SendBufferSize 140
4.9.17 StartThreads 140
4.9.18 User 140
4.10 Spezielle Anweisungen für das Winnt-MPM 140
4.10.1 CoreDumpDirectory 141
4.10.2 Listen 141
4.10.3 ListenBacklog 141
4.10.4 MaxRequestsPerChild 141
4.10.5 PidFile 141
4.10.6 SendBufferSize 141
4.10.7 ThreadsPerChild 141
4.11 Spezielle Anweisungen für das Prefork-MPM 141
4.11.1 CoreDumpDirectory 142
4.11.2 Group 142
4.11.3 Listen 142
4.11.4 ListenBacklog 142
4.11.5 LockFile 142
4.11.6 MaxClients 142
4.11.7 MaxRequestsPerChild 142
4.11.8 MaxSpareServers 142
4.11.9 MinSpareServers 143
4.11.10 PidFile 143
4.11.11 ScoreBoardFile 143
4.11.12 SendBufferSize 143
4.11.13 StartServers 143
4.11.14 User 143

5 Die Module 145
5.1 Ein Überblick über die Module 145
5.2 Module zur Bearbeitung der Umgebung 146
5.2.1 mod_env 146
5.2.2 mod_setenvif 147
5.3 Module zur Authentifizierung und Zugriffssteuerung 149
5.3.1 mod_auth_anon 150
5.3.2 mod_auth_dbm 152
5.3.3 mod_auth_db 157
5.4 Module zur Erzeugung von dynamischen Inhalten 159
5.4.1 mod_actions 160
5.4.2 mod_ext_filter 165
5.5 Module zur Konfiguration von Content-Typen 167
5.5.1 mod_mime 167
5.5.2 mod_mime_magic 171
5.5.3 mod_negotiation 172
5.6 Module zur Auflistung von Verzeichnissen 173
5.6.1 mod_dir 174
5.6.2 mod_autoindex 175
5.7 Module zur Generierung von Antwort-Headern 182
5.7.1 mod_asis 182
5.7.2 mod_headers 183
5.7.3 mod_expires 184
5.7.4 mod_cern_meta 186
5.8 Server Information and Logging Modules 188
5.9 URL Mapping Module 188
5.9.1 mod_userdir 189
5.9.2 mod_alias 190
5.9.3 mod_speling 194
5.9.4 mod_vhost_alias 195
5.10 Verschiedene Module 197
5.10.1 mod_so 197
5.10.2 mod_imap 198
5.10.3 mod_file_cache 201
5.10.4 mod_dav 202


TEIL II: Administration von Websites 205

6 Einsatz virtueller Sites 207
6.1 Was ist virtuelles Hosting? 207
6.2 Einrichten von virtuellen Hosts 209
6.2.1 Namen-basierte virtuelle Hosts 209
6.2.2IP-basierte virtuelle Hosts 211
6.2.3 Mehrere zentrale Server als virtuelle Hosts 213
6.3 Konfiguration des DNS für virtuelle Hosts 215
6.3.1 Zonendateien verstehen 215
6.3.2 Einrichten des DNS für virtuelle Hosts 217
6.3.3 Virtuelle Mail-Dienste anbieten 218
6.4 Benutzerkennungen für virtuelle Hosts 219
6.5 Viele virtuelle Server verwalten 221
6.6 Automatisierung der Konfiguration mittels mod_perl 222
6.7 Verwendung von makesite zur Erstellung von virtuellen Servern 226
6.8 Virtuelle Hosts mit MySQL und mod_v2h 230

7 Websitebesucher authentifizieren und autorisieren 233
7.1 Authentifizierung und Autorisierung 233
7.2 So funktioniert die Authentifizierung 234
7.3 Authentifizierung von Benutzern über das Modul mod_auth 236
7.3.1 Die Direktiven für mod_auth 236
7.3.2 Erstellen Sie einen geschlossenen Mitgliederbereich in Ihrer Website 238
7.3.3 Erstellen Sie einen geschlossenen Mitgliederbereich unter Verwendung der Datei .htaccess 240
7.3.4 Benutzergruppen für zugangsbeschränkte Bereiche der Website einrichten 242
7.4 Autorisierung des Zugangs über Hostnamen oder IP-Adressen 244
7.4.1 allow-Direktive 244
7.4.2 deny-Direktive 245
7.5 Authentifizierung und Autorisierung kombinieren 248
7.6 Authentifizierung über eine relationale Datenbank 249
7.6.1 MySQL-Datenbankserver zur Authentifizierung verwenden 250
7.6.2 Andere Datenbanksysteme zur Benutzerauthentifizierung verwenden 258
7.7 Benutzer und Gruppen in beliebigen RDBMS verwalten 260
7.8 Sitzungen mit gesicherter Authentifizierung unter Verwendung von Cookies 265

8 Zugriff auf Apache überwachen 271
8.1 Apache überwachen 271
8.1.1 Konfigurationsinformationen mit mod_info abfragen 272
8.1.2 Aktivieren von Statusseiten mit mod_status 275
8.2 Log-Dateien erstellen 280
8.2.1 TransferLog-Direktive 281
8.2.2 LogFormat-Direktive 282
8.2.3 CustomLog-Direktive 283
8.2.4 CookieLog-Direktive 284
8.3 Log-Dateien anpassen 284
8.4 Mehrere Log-Dateien erzeugen 287
8.5 Cookies speichern 288
8.6 Error-Logs verwenden 290
8.7 Log-Datei analysieren 292
8.8 Log-Wartung 295

9 URLs substituieren 301
9.1 Die URL-Rewriting-Engine von Apache 301
9.1.1 RewriteEngine 304
9.1.2 RewriteOptions 305
9.1.3 RewriteRule 305
9.1.4 RewriteCond 308
9.1.5 RewriteMap 310
9.1.6 RewriteBase 311
9.1.7 RewriteLog 312
9.1.8 RewriteLogLevel 312
9.1.9 RewriteLock 313
9.2 URL-Layout 313
9.2.1 Angeforderte URLs in kanonische URLs umwandeln 313
9.2.2 Benutzer-Stammverzeichnisse auf neue Webserver umleiten 314
9.2.3 Suche nach einer Seite in mehreren Verzeichnissen 315
9.2.4 Umgebungsvariablen in Abhängigkeit von URLs setzen 319
9.2.5 Sites mit dem Namensmuster www.username.host.com erstellen 320
9.2.6 Umleitung ausgefallener URLs auf andere Webserver 322
9.2.7 Einen Zugriffsmultiplexer erstellen 323
9.2.8 Zeitabhängige URLs erstellen 325
9.3 Inhaltsspezifische Rewriting-Regeln 325
9.3.1 Für Abwärtskompatibilität von URLs sorgen 325
9.3.2 Browserspezifische URLs erstellen 326
9.3.3 Einen Übergang zwischen HTML und CGI schaffen 327
9.4 Zugriffsbeschränkung 327
9.4.1 Robots aussperren 327
9.4.2 URLs auf Basis des HTTP-Referer-Headers abweisen 328

10 Proxy-Server einrichten 329
10.1 Wer sollte einen Proxy-Server einsetzen? 329
10.2 Proxy-Server 330
10.2.1 Forward-Proxy 330
10.2.2 Reverse-Proxy 331
10.3 mod_proxy-Direktiven 333
10.3.1 ProxyRequests 333
10.3.2 ProxyRemote 333
10.3.3 ProxyPass 334
10.3.4 ProxyBlock 335
10.3.5 NoProxy 335
10.3.6 ProxyDomain 336
10.3.7 CacheRoot 336
10.3.8 CacheSize 337
10.3.9 CacheGcInterval 337
10.3.10 CacheMaxExpire 337
10.3.11 CacheLastModifiedFactor 338
10.3.12 CacheDirLength 338
10.3.13 CacheDirLevels 339
10.3.14 CacheDefaultExpire 339
10.3.15 NoCache 340
10.4 Apache-Proxy-Server konfigurieren 340
10.4.1 Szenario 1: Ein privates IP-Netzwerk mit dem Internet verbinden 341
10.4.2 Szenario 2: Entfernte Websites cachen 341
10.4.3 Szenario 3: Spiegeln einer Website 343
10.5 Webbrowser zur Verwendung eines Proxies einrichten 344
10.5.1 Manuelle Proxy-Konfiguration 344
10.5.2 Automatische Proxy-Konfiguration für Webbrowser 347
10.5.3 Einstellen von Rückgabewerten für FindProxyURL 348
10.5.4 Vordefinierte Funktionen in FindProxyURL verwenden 349

11 Websites professionell betreiben 359
11.1 Was ist ein Web-Entwicklungszyklus? 360
11.2 Webzyklen praktisch umsetzen 362
11.2.1 Einrichten des Webzyklus 363
11.2.2 Implementierung des Webzyklus 367
11.3 Website mit Vorlagen und makepage aufbauen 371
11.4 HTTP PUT für die Intranet-Veröffentlichung verwenden 373
11.4.1 Direktiven im Modul mod_put 373
11.4.2 Kompilieren und Installieren von mod_put 374
11.4.3 Webverzeichnis für die PUT-Methode einrichten 374
11.4.4 Virtuellen Host zur Verwendung des Moduls mod_put einrichten 376
11.5 Wartung Ihres Webs 378
11.5.1 Online-Backup 378
11.5.2 Offline-Backup 379
11.6 Standards durchsetzen 380
11.6.1 Verfahrensregeln für die Entwicklung von HTML-Dokumenten 380
11.6.2 Verfahrensregeln für die Entwicklung dynamischer Anwendungen 383
11.7 Eine benutzerfreundliche Schnittstelle für Ihre Website 384
11.7.1 Auf Ihrer Site sollte man sich leicht zurechtfinden können 385
11.7.2 Entwurf eines ansprechenden Designs 385
11.7.3 Kryptische Fehlermeldungen beseitigen 386
11.7.4 Testen der Web-Benutzeroberfläche 387
11.7.5 Werbung für Ihre Website 387


TEIL III: Webanwendungen in der Praxis 389

12 CGI-Skripte verwenden 391
12.1 Was ist CGI? 391
12.2 CGI-Eingaben und -Ausgaben 393
12.2.1 GET-Anforderungen 393
12.2.2 POST-Anforderungen 396
12.2.3 Vergleich von GET und POST 398
12.2.4 Decodierung von Eingabedaten 398
12.3 CGI-Unterstützung beim Apache-Server 399
12.3.1 Servervariablen 400
12.3.2 Client-Anforderungsvariablen 401
12.4 CGI-Konfiguration des Apache 408
12.4.1 Einen Alias für das CGI-Verzeichnis einrichten 408
12.4.2 Spezifische CGI-Dateierweiterungen festlegen 409
12.4.3 Zugriff auf cgi-bin für Benutzer 412
12.4.4 Neue CGI-Endungen per AddType-Direktive hinzufügen 415
12.5 CGI-Programme ausführen 416
12.6 CGI-Debugging in Apache aktivieren 449
12.6.1 ScriptLog 449
12.6.2 ScriptLogLength 449
12.6.3 ScriptLogBuffer 450
12.7 Debugging von in Perl geschriebenen CGI-Skripten 450
12.7.1 Debugging über die Eingabeaufforderung 450
12.7.2 Debugging unter Verwendung des Logging und der Debug-Ausgabe 452
12.7.3 Debugging mit CGI::Debug 454

13 Server Side Includes (SSI) 457
13.1 Was sind Server Side Includes? 457
13.2 Apache für SSI konfigurieren 458
13.2.1 SSI für ein Verzeichnis aktivieren 459
13.2.2 SSI für eine bestimmte Dateierweiterung aktivieren 460
13.2.3 XBitHack für .htm- und .html-Dateien 461
13.3 SSI-Befehle verwenden 462
13.3.1 config 463
13.3.2 echo 466
13.3.3 exec 467
13.3.4 fsize 472
13.3.5 flastmod 473
13.3.6 include 473
13.3.7 printenv 474
13.3.8 set 474
13.4 SSI-Variablen 475
13.5 Befehle zur Programmflusskontrolle 476

14 FastCGI konfigurieren 481
14.1 Was ist FastCGI? 481
14.1.1 Hohe Performance durch Caching 484
14.1.2 Skalierbarkeit durch verteilte Anwendungen 485
14.2 Die Arbeitsweise von FastCGI 487
14.2.1 Grundaufbau einer FastCGI-Anwendung 490
14.2.2 Unterschiedliche Typen von FastCGI-Anwendungen 491
14.3 Migration von CGI zu FastCGI 492
14.3.1 Was Sie bei einer Migration beachten sollten 493
14.3.2 Migration eines Beispielskripts 495
14.4 FastCGI für Apache einrichten 498
14.4.1 FastCGI-Direktiven für Apache 498
14.4.2 httpd.conf für FastCGI konfigurieren 501

15 PHP und Apache 505
15.1 Die Arbeitsweise von PHP 506
15.2 PHP im Unternehmen verfügbar machen 507
15.3 Voraussetzungen für PHP 508
15.4 PHP kompilieren und installieren 509
15.4.1 PHP als CGI-Lösung 509
15.4.2 PHP als Apache-Modul 510
15.5 Apache für PHP konfigurieren 512
15.6 PHP über php.ini konfigurieren 513
15.6.1 PHP-Direktiven in httpd.conf 513
15.6.2 PHP-Direktiven in php.ini 515
15.7 PHP anwenden 523
15.7.1 PHP-Skript für die Befehlszeile erstellen 523
15.7.2 Einfache PHP-Webseiten erstellen 524
15.7.3 PHP-Skript als Server Side Include verwenden 525
15.7.4 PHP-Seite für Verzeichnisindex verwenden 526
15.7.5 Include-Dateien verwenden 526
15.7.6 Fehlerbehandlung mit PHP erweitern 529
15.7.7 Webformulare mit PHP verarbeiten 529
15.7.8 Sitzungen mit PHP erstellen 532
15.8 PHP und MySQL 537
15.8.1 Einfache PHP-Seite für den Zugriff auf eine MySQL-Datenbank erstellen 537
15.8.2 PHP-Include-Dateien schützen 540
15.8.3 Benutzer über PHP und MySQL authentifizieren 541

16 Perl unter Apache verwenden 545
16.1 mod_perl kompilieren und installieren 545
16.2 CGI-Skripte über mod_perl ausführen 546
16.3 Erfinden Sie das Rad nicht neu 548
16.4 mod_perl-Modul unter Verwendung der Perl-API für Apache erstellen 548
16.5 Mit CGI.pm mod_perl-Module schreiben 554
16.6 Preload von Perl-Modulen zum Senken des Speicherbedarfs 556
16.7 mod_perl-Module im Speicher überwachen 557
16.8 ASP unter Verwendung des Moduls Apache: ASP implementieren 558

17 Java-Servlets und JSP-Seiten mit Tomcat ausführen 561
17.1 Warum Servlets? 562
17.2 Tomcat installieren 563
17.2.1 Neuestes JDK für Tomcat installieren 563
17.3 Tomcat konfigurieren 566
17.3.1 Tomcat für Apache konfigurieren 566
17.3.2 Tomcat zur Verwendung von Java Security Manager konfigurieren 571
17.4 Apache für Servlets und JSP konfigurieren 573
17.5 Tomcat verwenden 578
17.5.1 Tomcats standardmäßigen HTTP-Service abschalten 578
17.5.2 Tomcat starten und stoppen 579
17.5.3 Tomcat mit einen Shell-Wrapperskript starten 579
17.5.4 Java-Servlets ausführen 580


TEIL IV: Auf Nummer Sicher gehen 587

18 Websicherheit 589
18.1 Was bedeutet Websicherheit? 589
18.2 Sicherheitskontrollpunkte 590
18.2.1 Kontrollpunkt i: Ihr Netzwerk 592
18.2.2 Kontrollpunkt 2: Das Betriebssystem 593
18.2.3 Kontrollpunkt 3: Webserver-Software 594
18.3 Sicherheitskonfiguration festlegen 595
18.3.1 Erwägungen zu Sicherheitsrichtlinien 595
18.3.2 Eine sensible Sicherheitskonfiguration für Apache 598
18.3.3 Die Opferlamm-Netzwerkkonfiguration 606
18.3.4 Die »paranoide« Konfiguration 607
18.4 Webinhalte schützen 608
18.4.1 Richtlinien für die Veröffentlichung von Inhalten 608
18.5 Logging und Sicherheit 612
18.5.1 CustomLog und ErrorLog 613
18.6 CGI-Implementierungen sichern 615
18.6.1 CGI-Risiken durch intelligente Programmierung bekämpfen 615
18.6.2 Benutzereingaben sichern 628
18.6.3 Wrapper für CGI-Skripte 632
18.6.4 Hinweise auf Ihre CGI-Skripte vermeiden 639
18.6.5 CGI-Scanner verwenden 640
18.7 SSI-Risiken reduzieren 644

19 Apache mit SSL sichern 647
19.1 SSL - Eine Einführung 648
19.2 So arbeitet SSL 649
19.2.1 Verschlüsselung verstehen 649
19.2.2 Zertifikate verstehen 651
19.3 Apache für SSL einrichten 656
19.3.1 SSL-Lösungen 656
19.3.2 OpenSSL einrichten 656
19.4 Zertifikat beschaffen 668
19.4.1 Serverzertifikat von einer kommerziellen Zertifizierungsstelle beziehen 669
19.4.2 Privaten Schlüssel erzeugen 669
19.4.3 CSR (Certificate Signing Request) generieren 670
19.4.4 Private Zertifizierungsstelle einrichten 671
19.5 Auf SSL-Seiten zugreifen 672


TEIL V: Apache unter Windows 673

20 Apache für Windows installieren und betreiben 675
20.1 Systemanforderungen 675
20.2 Apache für Windows herunterladen 676
20.3 Apache-Binärdateien installieren 677
20.4 Apache betreiben 681
20.4.1 Apache automatisch als Windows-Dienst betreiben 682
20.4.2 Apache über das Startmenü verwalten 684
20.4.3 Apache über die Eingabeaufforderung verwalten 685
20.4.4 Mehrere Apache-Dienste betreiben 685

21 Apache für Windows konfigurieren 687
21.1 Die Syntax für httpd.conf unter Windows 687
21.2 Performancetuning für Apache 688
21.3 Apache-Konfiguration testen 688
21.4 Apache mit Comanche verwalten 689
21.5 Apache für dynamische Inhalte konfigurieren 692
21.5.1 Perl-basierende CGI-Skripte ausführen 692
21.5.2 mod_perl-Skripte ausführen 693
21.5.3 PHP-Skripte ausführen 695
21.5.4 ISAPI-Erweiterungen mit mod_isapi ausführen 696
21.6 UserDir in Windows 698


TEIL VI: Feintuning für Performance und Skalierbarkeit 699

22 Apache beschleunigen 701
22.1 Highperformance-Hardware nutzen 701
22.1.1 CPU 702
22.1.2 RAM 702
22.1.3 Festplatte 704
22.2 Dateisystem ext2 unter Linux tunen 712
22.2.1 Blockgröße des ext2-Dateisystems ändern 712
22.2.2 Dateisystem ext2 mit e2fsprogs tunen 713
22.3 Betriebssystem tunen 716
22.3.1 Benutzerdefinierten Kernel kompilieren und installieren 717
22.3.2 System für anspruchsvolle Webanwendungen tunen 717
22.3.3 Apache-Serversoftware verschlanken und optimieren 719
22.4 Netzwerk tunen 721
22.4.1 Fast Ethernet 721
22.4.2 Netzwerkverkehr verstehen und kontrollieren 722
22.4.3 Lastenausgleich mit dem DNS-Server 724
22.4.4 Hardware für Lastenausgleich verwenden 725
22.5 Apache-Konfiguration tunen 727
22.5.1 DNS-Lookups minimieren 727
22.5.2 Liefern statischer Dateien beschleunigen 727
22.5.3 Konfiguration mit ApacheBench tunen 730
22.6 Cache für mehr Geschwindigkeit 733
22.6.1 Häufig verwendete Dateien mit mod_fcache cachen 733
22.6.2 Raffinessen mit dem Squid Proxy-Caching Server 734
22.6.3 mod_backhand für eine Webserverfarm verwenden 741
22.7 Webanwendungen tunen 742
22.7.1 mod_perl-Skripte schneller machen 743
22.7.2 FastCGI anstelle von mod_perl 749

23 Netzwerk für hohe Verfügbarkeit erstellen 753
23.1 Leistungsmerkmale eines Webnetzwerks mit hoher Verfügbarkeit 753
23.2 DNS-Zuverlässigkeit steigern 754
23.3 Lastenausgleich im Netzwerk 755
23.3.1 HTTP-Anforderungen mit Zeitscheiben-DNS verteilen 755
23.3.2 HTTP-Anforderungen mit hardwarebasierendem Lastenausgleich 756
23.4 Webspeicher verwalten 758
23.4.1 RAID, SAN und Storage Appliances 758
23.4.2 Festplattenlaufwerke tunen 760
23.5 Zuverlässiges Backend-Netzwerk erstellen 794
23.6 Webnetzwerk sichern und schützen 796
23.6.1 Mit Tripwire Webinhalte schützen 797
23.6.2 Apache durch LIDS (Linux Intrusion Detection System) schützen 812

A HTTP/1.1-Statuscodes 831

B Grundlagen regulärer Ausdrücke 835

C Internet-Ressourcen für Apache 839

D Inhalt der Buch-CD 845

Stichwortverzeichnis 849