0251 / 590 837 15

Apache Webserver – Tutorial, Tipps & Tricks

Der Apache Webserver ist einer der am häufigsten eingesetzten Webserverprogramme der Welt. Er konnte und kann sich auch heute erfolgreich gegen seine Konkurrenten Microsoft und Netscape erfolgreich durchsetzen und läuft laut Netcraft auf fast über 70% der Webserver im Internet. Ein Grund mehr sich genauer mit ihm auseinander zu setzen.

Was ist der Apache?

Der Apache Webserver ist ein Open Source Webserver der von der Apache Group unter der GNU Public License (GPL) frei zum Download angeboten wird. Er ist ein Serverprogramm zur Auslieferung von Webseiten. Der Apache kann sehr leicht mit Modulen erweitert und so seinem Arbeitsbereich angepasst werden. Damit kann er neben dem reinen Webserver z.B. auch als Intranetserver oder als sicherer Webserver einer Bank eingesetzt werden.

Wozu benötigt man den Apache?

Der Apache dient hauptsächlich als Webserver und stellt als dieser Webseiten oder allgemein Dateien und Dokumente in einem bestimmten Umfeld bereit. Diese kann eine Webseite im Intranet einer Firma sein oder aber auch tausende von Webseiten bei einem Webhoster.

Was kann er und was kann er nicht?

Der Apache Webserver kann natürlich am besten HTML-Seiten an Clients ausliefern. Das ist aber nicht alles. Der Apache kann sich auch um den Zugriffsschutz der einzelnen Verzeichnisse kümmern und diese sogar per Datenbank abgleichen. Er kann auch auf einem Rechner für mehrere Domains (www.name.de) zuständig sein. Mit Modulen kann der Apache auch dynamische Webseiten ausliefern die zum Beispiel auf PHP, ASP oder JSP basieren (siehe späteres Kapitel). In der Moduldatenbank der Apache Group finden sich dazu rund 400 Module mit denen der Apache erweitert werden kann. Darunter findet sich auch das Proxymodul mit dem der Apache Webserver als Proxyserver eingesetzt werden kann (siehe späteres Kapitel).

Wie funktioniert der Apache?

Der Apache ist genau genommen ein Webserver der auf dem HTTP-Protokoll basiert. HTTP setzt dabei wiederum auf dem Transportprotokoll TCP/IP auf.

Verbindung zwischen Server und Client
Darstellung: Verbindung zwischen Server und Client

Um ein Dokument aus dem Internet zu beziehen baut der Client zum Server eine TCP/IP Verbindung auf und sendet einen HTTP-Request (Anfrage / siehe HTTP-Doku hier bei HTMLWorld). Der Server verarbeitet den Request und gibt einen entsprechenden Response (Antwort) mit der angeforderten Datei aus.

Entstehungsgeschichte

Der Apache Webserver entstammt aus dem Webserverprojekt der NCSA (National Center for Super Computing Applications). Da das Projekt mit dem Weggang des Chefentwicklers stockte fanden sich Nutzer des Webservers um Patches zur Behebung von Fehlern auszutauschen und erkannten, dass sie ein "Forum" dafür brauchten. Die Apache Group war geboren. Der Name Apache kommt ursprünglich von a pa(t)chy (flicken/patchen) und offiziell ist der Name den amerikanischen Ureinwohnern gewidmet.

Die Version 1.3.xx

Am 1. Dezember 1995 erschien die von Grund auf neu geschrieben Version 1.0 des Servers. Die Version 0.6.5 stammte damals noch von der Version 1.3 des NCSA Httpd Servers ab. In weniger als einem Jahr wurde der Apache die am häufigsten eingesetzte Webserversoftware der Welt. Dies lag an der sehr guten Dokumentation und dem Modulkonzept welches es ermöglichte den Apache Webserver einfach zu erweitern. Die Version 1.3.xx wird nicht mehr um Funktionen erweitert sondern es wird sich nur noch auf Sicherheitspatches und Bugfixes konzentriert. An die Version 1.3.x schließt sich 2.0 an.

Die Version 2.0.xx

Im Sommer 1999 begann die Entwicklung des Apache 2.0. Heute enthält diese Version Multithread Fähigkeiten und Plattformunabhängige Bibliotheken und ist bei der Versionsnummer 2.0.54 angelangt. Wer jetzt einen Webserver aufsetzen möchte oder muss, dem empfehle ich diese Version zu nutzen, da die Version 1.3.xx nicht mehr um Funktionen erweitert wird. Anfang 2002 erreichte der Apache 2.0 seinen stabilen Status und seitdem wird die Webseite der Apache Group mit dem Apache 2.0 betrieben. Im Rahmen des Tutorials wird auf die Version 2.0.5.4 eingehen und gegebenenfalls bei großen Unterschieden einen Hinweis auf die entsprechenden Einstellungen in der 1.3.xx Version geben.

Unterschiede zwischen 1.3 vs. 2.0

Einzelne Punkte zwischen den beiden Versionen lassen sich nicht wirklich vergleichen da der Apache 2.0 von Grund auf neu geschrieben wurde. So enthält der Apache 2.0 neue Multiprocessing-Module kurz MTM die für unterschiedliche Plattformen geschrieben worden sind und für einen Performanceschub auf dem jeweiligen System sorgen. Die Module müssen auch nicht mehr wie früher in der richtigen Reihenfolge geladen werden, darum kümmert sich der Apache beim Start selbstständig. Damit ist der größte merkbare Unterschied zwischen den Versionen der Geschwindigkeitszuwachs.

Installation und Bedingungen

Bei einer Installation unter Windows sollte Windows NT, Windows 2000, Windows XP oder einer der Servervarianten bevorzugt werden. Generell ist auch eine Installation unter Windows 98 oder ME möglich, diese würde ich aber nur empfehle wenn keine anderes Betriebssystem vorhanden ist. Eine Installation unter den gängigen Unix Systemen (BSD, Solaris, HP-UX) verläuft gewissermaßen wie unter Linux und kann deshalb unter umständen übernommen werden, beziehungsweise bei Unterschieden der Apache Dokumentation der jeweiligen Version entnommen werden.

Rundumsorglospakete für Windows

Für User denen die ganze nicht gerade einfache Konfiguration der Zusatzmodule zu schwer ist oder darauf keine Lust haben gibt es gerade für Windows Projekte die den Apache Webserver neu zusammengestellt und für Windows mit den entsprechenden Modulen übersetzt. Somit lässt sich zum Beispiel auch unter Windows SSL einsetzen.

Grundkonfiguration

Die Datei httpd.conf im conf Unterverzeichnis der Installation enthält alles womit der Apache konfiguriert werden kann. Somit ist sie eine der wichtigsten Dateien für den Apache Server. Die komplette Liste würde ca. 200 Einstellungen umfassen.

Verzeichniseinstellungen

Mit dem Apache Server lassen sich sehr gut umfangreiche Verzeichniseinstellungen tätigen. Wie das ganze funktioniert wird in diesem Kapitel vorgestellt. Wie einzelne Verzeichnise geschützt werden, folgt ausführlich im Kapitel zum Thema Sicherheit ausführlich beschrieben.

Virtuelle Server

Mit dem Apache Server und einem entsprechend konfigurierten Domain Name Server ist es möglich auf einem Server mehrere Domains zu verwalten. Der Apache kann dabei die Domains sowohl IP basierend (IP-based Virtual Host) als auch Namens basierend (Name-based Virtual Host) verwalten.

Sicherheit und Performance

Damit der Apache vor allem Sicher im Internet läuft ist es natürlich wichtig auf einige Dinge zu achten. Dort wären zum Beispiel die Physikalische Sicherheit und auch wozu der Serverrechner noch genutzt wird. Weiterhin ist natürlich ein schlankes Betriebssystem erheblich von Vorteil wenn es um die Geschwindigkeit des Servers geht.

Wichtige Module

Im folgenden wollen wir Ihnen noch die weiteren wichtigen Module vorstellen, deren Einsatz sich durchaus lohnen kann.

SSL mit dem Apache

SSL (Secrured Socket Layer) ist eine Technik um Verbindungen über das Internet oder im Netzwerk zu verschlüsseln. Da HTTP im Klartext übertragen wird ist es nicht geeignet um z.B. einen sicheren Webshop zu betreiben. Der Apache lässt sich aber auch mit SSL konfigurieren damit sensible Daten nicht im Klartext übertragen werden.

Server Logging und Status

Der Apache Server kann so konfiguriert werden, dass der komplette “Arbeitsablauf” aufgezeichnet wird. Wo diese Log Dateien gespeichert sind und was sie enthalten können, wird hier beschreiben.

Serverseitige Programmierung

Zur Interaktion mit dem User sind Scriptsprachen wie PHP oder PERL sehr beliebt. Der Apache Webserver lässt sich natürlich auch mit diesen betreiben. Die Konfiguration des Apache-Webservers und Installation einiger wichtige Scriptsprachen wird im Folgenden beschrieben.

Der Apache als Proxyserver

Dass sich der Apache Webserver mit Modulen umfangreich erweitern lässt ist ja schon bekannt. Hier wird nun das Proxy-Modul vorgestellt, das bei dem Apache 2.0 bereits im Lieferumfang enthalten ist und unter Linux nur aktiviert werden braucht beziehungsweise unter Windows in der httpd.conf nur auskommentiert werden muss.

Weitere Artikel