Apache 2.4 - Skalierung, Performance-Tuning, CGI, SSI, Authentifizierung, Sicherheit, VMware Re
von: Sascha Kersken
Galileo Press, 2011
ISBN: 9783836217774
Sprache: Deutsch
1025 Seiten, Download: 6402 KB
Format: PDF, auch als Online-Lesen
Mehr zum Inhalt
Apache 2.4 - Skalierung, Performance-Tuning, CGI, SSI, Authentifizierung, Sicherheit, VMware Re
Liebe Leserin, lieber Leser, | 3 | ||
Auf einen Blick | 4 | ||
Inhalt | 6 | ||
Vorwort | 16 | ||
1 TCP/IP-Netzwerke, Internet und WWW | 22 | ||
1.1 TCP/IP | 22 | ||
1.1.1 Das Internet-Schichtenmodell | 23 | ||
1.1.2 Das Internet Protocol (IP) | 25 | ||
1.1.3 Transportprotokolle | 31 | ||
1.2 Das Domain Name System (DNS) | 33 | ||
1.2.1 Das DNS-Konzept | 34 | ||
1.2.2 Der DNS-Server BIND | 37 | ||
1.3 TCP/IP-Diagnose und -Fehlersuche | 43 | ||
1.3.1 ping | 43 | ||
1.3.2 traceroute | 44 | ||
1.3.3 netstat | 45 | ||
1.3.4 nslookup | 46 | ||
1.3.5 telnet | 47 | ||
1.4 Zusammenfassung | 49 | ||
2 Funktionsweise von Webservern | 50 | ||
2.1 Das HTTP | 50 | ||
2.1.1 Die HTTP-Client-Anfrage | 52 | ||
2.1.2 HTTP-Statuscodes | 63 | ||
2.1.3 HTTP-Header | 69 | ||
2.2 Einstieg für Programmierer: ein selbst geschriebener Webserver | 87 | ||
2.2.1 Projektanforderungen | 88 | ||
2.2.2 Implementierungsdetails | 88 | ||
2.2.3 Der komplette Quellcode | 98 | ||
2.2.4 Benutzerdokumentation | 103 | ||
2.3 Zusammenfassung | 105 | ||
3 Apache 2 im Überblick | 106 | ||
3.1 Einführung | 106 | ||
3.1.1 Entstehungsgeschichte des Apache-Webservers | 107 | ||
3.1.2 Die Apache Software Foundation | 109 | ||
3.1.3 Die Apache-Softwarelizenz | 112 | ||
3.1.4 Sonstige Webserver | 114 | ||
3.2 Funktionen von Apache 2 | 117 | ||
3.2.1 Technischer Überblick | 119 | ||
3.2.2 Apache-Module | 134 | ||
3.3 Zusammenfassung | 148 | ||
4 Apache kompilieren und installieren | 150 | ||
4.1 Apache 2 kompilieren | 151 | ||
4.1.1 Den Quellcode besorgen und auspacken | 151 | ||
4.1.2 Apache 2 unter UNIX kompilieren | 153 | ||
4.1.3 Apache 2 unter Windows kompilieren | 183 | ||
4.2 Die binäre Apache-Distribution für Windows installieren | 188 | ||
4.3 Module nachträglich installieren | 193 | ||
4.4 Zusammenfassung | 195 | ||
5 Apache in Betrieb nehmen | 196 | ||
5.1 Apache 2 starten und beenden | 196 | ||
5.1.1 Apache unter UNIX steuern | 196 | ||
5.1.2 Apache unter Windows steuern | 207 | ||
5.1.3 Apache-Hilfsprogramme | 216 | ||
5.2 Apache testen | 217 | ||
5.2.1 Die automatische Startseite | 217 | ||
5.2.2 Die erste Website | 218 | ||
5.3 Zusammenfassung | 225 | ||
6 Grundkonfiguration | 226 | ||
6.1 Aufbau der Apache-Konfigurationsdateien | 226 | ||
6.1.1 Namen, Pfad und Aufgaben der Konfigurationsdateien | 227 | ||
6.1.2 Grundlegendes zur Syntax | 230 | ||
6.1.3 Syntaxschema | 233 | ||
6.2 Kontexte und Container | 235 | ||
6.2.1 Der Server-Kontext | 235 | ||
6.2.2 Virtuelle Hosts | 235 | ||
6.2.3 Verzeichnis- und Datei-Container | 236 | ||
6.2.4 Spezial-Container | 241 | ||
6.2.5 .htaccess-Dateien | 254 | ||
6.2.6 Einfügen externer Konfigurationsdateien | 256 | ||
6.3 Allgemeine Konfigurationsdirektiven | 257 | ||
6.3.1 Einrichten der Server-Umgebung | 257 | ||
6.3.2 Plattformspezifische Server-Einstellungen | 267 | ||
6.3.3 Konfiguration des »Hauptservers« | 280 | ||
6.3.4 Wichtige Verzeichniseinstellungen | 289 | ||
6.4 Zusammenfassung | 299 | ||
7 Header und MIME-Einstellungen | 302 | ||
7.1 HTTP-Header manipulieren | 302 | ||
7.1.1 MD5-Digest und ETag | 302 | ||
7.1.2 mod_headers | 304 | ||
7.1.3 mod_expires | 310 | ||
7.1.4 mod_asis | 313 | ||
7.1.5 mod_cern_meta | 314 | ||
7.2 MIME-Konfiguration | 316 | ||
7.2.1 MIME-Type-Einstellungen | 317 | ||
7.2.2 Zeichensatzeinstellungen | 324 | ||
7.2.3 MIME-Codierung | 327 | ||
7.2.4 Spracheinstellungen | 328 | ||
7.2.5 Handler festlegen | 330 | ||
7.3 Content-Negotiation | 333 | ||
7.3.1 Servergesteuerte Content-Negotiation | 334 | ||
7.3.2 Transparente Content-Negotiation | 340 | ||
7.3.3 Konfigurationseinstellungen für Content-Negotiation | 342 | ||
7.4 Zusammenfassung | 345 | ||
8 Weiterleitungen und Indizes | 346 | ||
8.1 Aliase und Weiterleitungen | 346 | ||
8.1.1 mod_alias | 347 | ||
8.1.2 mod_rewrite | 353 | ||
8.1.3 Benutzerverzeichnisse veröffentlichen | 373 | ||
8.1.4 Fehlerbehandlung | 376 | ||
8.1.5 Rechtschreibkorrektur in URLs mit mod_speling | 377 | ||
8.1.6 Status- und Konfigurationsinformationen über den Server | 379 | ||
8.2 Indizes | 382 | ||
8.2.1 mod_autoindex | 383 | ||
8.2.2 Serverseitige Image Maps mit mod_imagemap | 394 | ||
8.3 Zusammenfassung | 399 | ||
9 Authentifizierung, Autorisierung und Zugriffskontrolle | 400 | ||
9.1 Grundlagen | 400 | ||
9.1.1 Die Organisation der Authentifizierungsmodule seit Apache 2.2 | 402 | ||
9.1.2 Ein erstes Beispiel | 404 | ||
9.1.3 Grunddirektiven zur Authentifizierung | 406 | ||
9.2 Basic-Authentifizierung | 415 | ||
9.2.1 Das Programm htpasswd | 415 | ||
9.2.2 Direktiven zur textdateibasierten Basic-Authentifizierung | 417 | ||
9.3 Digest-Authentifizierung | 420 | ||
9.3.1 Das Tool htdigest | 422 | ||
9.3.2 Direktiven zur Digest-Authentifizierung | 423 | ||
9.4 Benutzer- und Passwortverwaltung in DBM-Dateien | 427 | ||
9.4.1 Das Tool dbmmanage | 428 | ||
9.4.2 Das Programm htdbm | 431 | ||
9.4.3 DBM-Direktiven | 432 | ||
9.5 LDAP-Authentifizierung | 435 | ||
9.5.1 LDAP-Grundwissen | 435 | ||
9.5.2 OpenLDAP einrichten und verwalten | 438 | ||
9.5.3 LDAP-Authentifizierungs-Direktiven | 442 | ||
9.5.4 LDAP-Performance-Verbesserung mit mod_ldap | 449 | ||
9.6 Anonymous-Authentifizierung | 455 | ||
9.7 Datenbankbasierte Authentifizierung mit mod_authn_dbd | 458 | ||
9.7.1 Datenbankverbindungen mit mod_dbd | 458 | ||
9.7.2 mod_authn_dbd-Direktiven | 462 | ||
9.8 Formularbasierte Authentifizierung mit mod_auth_form | 463 | ||
9.8.1 Formular- und Konfigurations-Beispiel | 463 | ||
9.8.2 mod_auth_form-Direktiven | 464 | ||
9.9 Weitere Authentifizierungseinstellungen | 470 | ||
9.9.1 Provider-Aliase | 470 | ||
9.9.2 mod_authz_owner | 472 | ||
9.9.3 mod_authn_default und mod_authz_default | 472 | ||
9.10 Zusammenfassung | 473 | ||
10 Gesicherte Verbindungen | 476 | ||
10.1 SSL-Grundlagen | 477 | ||
10.1.1 SSL einrichten | 479 | ||
10.1.2 SSL-Grundkonfiguration | 483 | ||
10.1.3 mod_ssl-Umgebungsvariablen | 485 | ||
10.2 mod_ssl-Direktiven | 486 | ||
10.2.1 Standard-Direktiven | 487 | ||
10.2.2 mod_ssl-Proxy-Direktiven | 511 | ||
10.2.3 mod_nw_ssl für NetWare | 514 | ||
10.3 Zusammenfassung | 515 | ||
11 Logging | 516 | ||
11.1 Logging-Direktiven und -Module | 517 | ||
11.1.1 Core-Direktiven | 517 | ||
11.1.2 mod_log_config | 525 | ||
11.1.3 mod_log_forensic | 533 | ||
11.1.4 mod_dumpio | 534 | ||
11.1.5 mod_usertrack | 535 | ||
11.1.6 Logging-Direktiven in mod_rewrite | 538 | ||
11.1.7 Benutzerdefinierte Debug-Log-Meldungen | 539 | ||
11.2 Auswertung von Log-Dateien | 540 | ||
11.2.1 Apache-Hilfsprogramme | 541 | ||
11.2.2 Log-Datei-Auswertung durch eigene Skripte | 543 | ||
11.2.3 Externe Tools | 553 | ||
11.3 Zusammenfassung | 554 | ||
12 Skalierung und Performance-Tuning | 556 | ||
12.1 Virtuelle Hosts | 556 | ||
12.1.1 Konfigurationsbeispiele | 557 | ||
12.1.2 Core-Direktiven für virtuelle Hosts | 561 | ||
12.1.3 mod_vhost_alias | 564 | ||
12.2 Performance-Tuning | 567 | ||
12.2.1 Allgemeines | 568 | ||
12.2.2 Benchmarks mit ab | 569 | ||
12.2.3 Performance-bezogene Core-Direktiven | 572 | ||
12.2.4 mod_file_cache: häufig genutzte Dateien vorausladen | 573 | ||
12.3 Load-Balancing | 575 | ||
12.3.1 Load-Balancing mit mod_rewrite | 576 | ||
12.3.2 Open-Source-Lösungen für Load-Balancing | 578 | ||
12.4 Zusammenfassung | 579 | ||
13 Proxy- und Cache-Funktionen | 580 | ||
13.1 Apache als Proxy-Server | 580 | ||
13.1.1 Proxy-Grundkonfiguration | 582 | ||
13.1.2 Referenz der Proxy-Direktiven | 585 | ||
13.1.3 mod_proxy_html | 604 | ||
13.1.4 Massen-Reverse-Proxys mit mod_proxy_express | 611 | ||
13.2 Cache-Funktionen | 612 | ||
13.2.1 Cache-Grundkonfiguration | 613 | ||
13.2.2 Cache-Direktiven | 615 | ||
13.2.3 htcacheclean | 626 | ||
13.3 Zusammenfassung | 628 | ||
14 CGI | 630 | ||
14.1 Die CGI-Schnittstelle | 630 | ||
14.1.1 FastCGI | 633 | ||
14.2 Apache für CGI-Skripte konfigurieren | 634 | ||
14.2.1 CGI-Verzeichnisse | 634 | ||
14.2.2 CGI in normalen Verzeichnissen aktivieren | 637 | ||
14.2.3 Konfigurationsanweisungen für mod_cgi und mod_cgid | 639 | ||
14.2.4 Plattformspezifische Einstellungen | 642 | ||
14.2.5 Das Modul mod_actions | 644 | ||
14.3 Umgebungsvariablen | 646 | ||
14.3.1 Die Umgebungsvariablen im Überblick | 647 | ||
14.3.2 Umgebungsvariablen in der Apache-Konfiguration setzen | 649 | ||
14.4 Session-Verwaltung mit mod_session | 655 | ||
14.4.1 Ein einfaches Konfigurationsbeispiel | 656 | ||
14.4.2 Session-Direktiven | 657 | ||
14.5 Grundlagen der CGI-Programmierung | 666 | ||
14.5.1 Das erste Beispiel | 667 | ||
14.5.2 Formulardaten einlesen | 668 | ||
14.6 Das Perl-Modul CGI.pm | 669 | ||
14.6.1 CGI.pm im Überblick | 670 | ||
14.6.2 Beispiel: Ein kleiner Taschenrechner | 676 | ||
14.6.3 CGI.pm-Kurzreferenz | 680 | ||
14.7 Zusammenfassung | 688 | ||
15 Technologien zur Webprogrammierung | 690 | ||
15.1 PHP | 691 | ||
15.1.1 MySQL installieren | 692 | ||
15.1.2 PHP installieren | 698 | ||
15.1.3 Die PHP-Konfigurationsdatei php.ini | 704 | ||
15.1.4 phpMyAdmin einrichten | 707 | ||
15.1.5 PHP-Programmierung | 709 | ||
15.2 mod_perl | 720 | ||
15.2.1 Installation von mod_perl | 721 | ||
15.2.2 Perl-Zugriff auf MySQL-Datenbanken | 727 | ||
15.2.3 Perl in der Apache-Konfigurationsdatei | 728 | ||
15.3 Tomcat | 730 | ||
15.3.1 Tomcat installieren | 730 | ||
15.3.2 Tomcat per Proxy einbinden | 735 | ||
15.3.3 Java-Webprogrammierung | 736 | ||
15.4 mod_lua | 741 | ||
15.4.1 Ein einfaches Beispiel | 741 | ||
15.4.2 mod_lua-Direktiven | 743 | ||
15.5 Weitere Programmierschnittstellen | 747 | ||
15.5.1 ISAPI-Anwendungen mit mod_isapi | 747 | ||
15.5.2 Sonstige Technologien | 750 | ||
15.6 Zusammenfassung | 751 | ||
16 SSI und Filter | 754 | ||
16.1 Server Side Includes (SSI) | 754 | ||
16.1.1 SSI aktivieren | 755 | ||
16.1.2 SSI-Elemente | 755 | ||
16.1.3 mod_include-Direktiven | 762 | ||
16.2 Filterkonfiguration | 766 | ||
16.2.1 Grundlegende Filterdirektiven | 766 | ||
16.2.2 Freie Modifikation der Filter Chain mit mod_filter | 771 | ||
16.2.3 Der Komprimierungsfilter mod_deflate | 776 | ||
16.2.4 mod_charset_lite | 779 | ||
16.2.5 mod_xml2enc | 781 | ||
16.2.6 Inhalt ersetzen mit mod_substitute | 782 | ||
16.3 Externe Filter programmieren | 787 | ||
16.3.1 mod_ext_filter | 787 | ||
16.3.2 Beispiele für externe Filter | 790 | ||
16.4 Zusammenfassung | 795 | ||
17 Apache erweitern | 796 | ||
17.1 WebDAV | 796 | ||
17.1.1 Konfigurationsbeispiel | 797 | ||
17.1.2 DAV-Direktiven | 797 | ||
17.2 Weitere Module | 799 | ||
17.2.1 Multiprotokoll-Unterstützung | 800 | ||
17.2.2 Weitere Drittanbieter-Module | 801 | ||
17.3 Programmierung eigener Module | 807 | ||
17.3.1 mod_example - Erforschen der Modul-API | 807 | ||
17.3.2 Arbeitsweise von Modulen | 808 | ||
17.3.3 Die Modulentwicklung | 809 | ||
17.3.4 mod_daytime - ein Beispiel zur Multiprotokoll-Unterstützung | 821 | ||
17.4 Zusammenfassung | 825 | ||
18 Sicherheit | 826 | ||
18.1 Sicherheit der Server-Umgebung | 826 | ||
18.2 Apache-Sicherheit | 828 | ||
18.2.1 Allgemeine Sicherheitshinweise | 828 | ||
18.2.2 Sicherheitsrelevante Direktiven | 830 | ||
18.2.3 SuEXEC | 835 | ||
18.3 mod_security | 838 | ||
18.4 Zusammenfassung | 839 | ||
19 Kommentierte Konfigurationsdateien | 842 | ||
19.1 Die Originalkonfigurationsdateien | 842 | ||
19.1.1 Die Grundkonfigurationsdatei httpd.conf | 843 | ||
19.1.2 Server-Pool-Verwaltung (httpd-mpm.conf) | 855 | ||
19.1.3 Mehrsprachige Fehlermeldungen (httpd-multilang-errordoc.conf) | 858 | ||
19.1.4 Fancy-Index (httpd-autoindex.conf) | 859 | ||
19.1.5 Sprach- und Zeichensatzeinstellungen (httpd-languages.conf) | 862 | ||
19.1.6 Benutzerverzeichnisse (httpd-userdir.conf) | 865 | ||
19.1.7 Status- und Anfrageinformationen (httpd-info.conf) | 866 | ||
19.1.8 Virtuelle Hosts (httpd-vhosts.conf) | 868 | ||
19.1.9 Einbinden der Apache-Dokumentation (httpd-manual.conf) | 869 | ||
19.1.10 WebDAV-Konfiguration (httpd-dav.conf) | 870 | ||
19.1.11 Erweiterte Standardeinstellungen (httpd-default.conf) | 871 | ||
19.1.12 Gesicherte Verbindungen (httpd-ssl.conf) | 873 | ||
19.2 Zusätzliche Konfigurationsdateien | 880 | ||
19.2.1 Authentifizierung | 880 | ||
19.2.2 Forward-Proxy mit Caching | 882 | ||
19.2.3 PHP | 884 | ||
19.2.4 mod_rewrite - papaya CMS | 885 | ||
19.3 Zusammenfassung | 888 | ||
A Besonderheiten von Apache 2.0 | 892 | ||
A.1 Zusätzliche Multiprocessing-Module | 892 | ||
A.2 Unterschiede bei Modulen | 893 | ||
A.3 Besonderheiten bei der Authentifizierung | 893 | ||
A.4 Weitere exklusive Direktiven | 900 | ||
B Kurzreferenz der Konfigurationsdirektiven | 904 | ||
C Sonstige Tabellen | 936 | ||
C.1 MIME-Types | 936 | ||
C.2 Sprachcodes nach ISO | 955 | ||
C.3 Zeichensätze | 959 | ||
C.4 Top-Level-Domains | 967 | ||
D Die Apache-Lizenz 2.0 | 978 | ||
E Reguläre Ausdrücke | 984 | ||
F VMware Workstation | 986 | ||
F.1 Einrichtung einer virtuellen Maschine | 987 | ||
F.2 Die virtuelle Maschine im Betrieb | 988 | ||
F.3 Einstellungen der virtuellen Maschine ändern | 989 | ||
F.4 VMware Tools installieren | 990 | ||
G Rechtliche Aspekte | 992 | ||
H Literatur | 996 | ||
Index | 998 |