Apache: Konfiguration des Servers mit Modul-Konzept

Suche nach Ordnern und die Protokolle

In der Konfiguration muss sich der Nutzer aber nicht darauf beschränken, für jeden Ordner eigene Regeln zu vergeben. Die Stärke des Apache HTTP Server ist es, dass er innerhalb der Direktiven mit Wildcards sowie speziellen Suchfunktionen auch schematische Regeln verarbeiten kann, die gleich auf mehrere Ordner und Dateien passen. Mittels "DirectoryMatch" beziehungsweise "FileMatch" und einem regulären Ausdruck als Suchbegriff hat jeder die Möglichkeit, zum Beispiel alle Ordner mit einem bestimmten Schlüsselwort von der Auslieferung im Web auszuschließen. Wildcards sind praktisch Platzhalter, die man etwa bei Dateitypen einsetzt.

Auch ein Blick auf den Eintrag "ErrorLog" lohnt sich: Der Wert dieser Direktive gibt an, wo der Apache Server die Fehlermeldungen speichert. Ein gelegentlicher Blick in die Datei ist absolut wichtig, damit man Betrugs- und Angriffsversuche auf den Webserver erkennen kann und beim Absturz sieht, ob ein Modul dafür verantwortlich war. "LogFormat" legt fest, welche Daten der Apache in die Logs schreibt. Praktisch alle Open-Source-Tools zur Analyse von Server-Logs verstehen sich auf das Apache-Logfile-Format.

HTTP-Web-Server, Hosts und Module

Bild 1 von 6
Apache HTTP Server Projekt - Apache ist laut Netcraft der beliebteste HTTP-Server überhaupt. (Bild: Netcraft Ltd.)
Bild vergrößern

Apache ist laut Netcraft der beliebteste HTTP-Server überhaupt. (Bild: Netcraft Ltd.)

Bild 2 von 6
Apache HTTP Server Projekt - Die Konfiguration erfolgt über reine Textdateien, hauptsächlich die "httpd.conf".
Bild vergrößern

Die Konfiguration erfolgt über reine Textdateien, hauptsächlich die "httpd.conf".

Bild 3 von 6
Apache HTTP Server Projekt - Mit virtuellen Hosts kann der Server mehrere Domains unter einer IP-Adresse betreiben.
Bild vergrößern

Mit virtuellen Hosts kann der Server mehrere Domains unter einer IP-Adresse betreiben.

Bild 4 von 6
Apache HTTP Server Projekt - Es gibt Module für praktisch jeden Zweck, mit denen der Apache erweitert wird.
Bild vergrößern

Es gibt Module für praktisch jeden Zweck, mit denen der Apache erweitert wird.

Bild 5 von 6
Apache HTTP Server Projekt - Die Programmiersprache PHP nutzt ebenfalls das offene Modulkonzept, um die Verbindung mit dem HTTP-Server herzustellen.
Bild vergrößern

Die Programmiersprache PHP nutzt ebenfalls das offene Modulkonzept, um die Verbindung mit dem HTTP-Server herzustellen.

Bild 6 von 6
Apache HTTP Server Projekt - Das Projekt XAMPP erleichtert die Installation von Apache unter Windows noch einmal deutlich.
Bild vergrößern

Das Projekt XAMPP erleichtert die Installation von Apache unter Windows noch einmal deutlich.


Werbung

Mehr Websites in einem HTTP-Server

Wer die Apache-Konfiguration einmal verstanden hat, kann sich an die beliebteste Funktion des beliebtesten HTTP-Servers machen: Dem gleichzeitigen Betrieb mehrerer getrennter Webseiten über eine einzige IP und einen einzigen Server. Dazu dienen die sogenannten virtuellen Hosts, die extrem billiges Webhosting wie bei 1&1 oder Strato erst möglich gemacht haben. Im Normalfall verweist jede Domain im DNS auf die eigene IP-Adresse, sodass ein Surfer auf "www.netzwelt.de" immer beim Server mit der IP 195.71.130.31 landet.

Bei kleineren Webprojekten ist ein einzelner Server aber natürlich nicht ausgelastet mit den Zugriffen der oft wenigen hundert Besucher am Tag. Daher kann Apache jetzt weitere Domains über die gleiche IP betreiben, sodass auch Anfragen an "www.netzwelt.com" bei 195.71.130.31 landen und dort andere Inhalte erscheinen. Eigentlich sehen alle HTTP-Anfragen für den Apache gleich aus, da sie ja über die selbe IP ablaufen - wäre da nicht das kleine Feld namens "Host", in dem alle gängigen Browser die angefragte Domain eintragen. So kann der Apache auch bei identischen IPs erkennen, welche Website denn vom Surfer gewünscht ist.

In der httpd.conf teilt der Begriff "NameVirtualHost *:80" dem Server mit, alle Anfragen auf Port 80 auf Basis der virtuellen Hosts zu unterscheiden. Der Nutzer kann nach der Direktive dann beliebig viele virtuelle Hosts nach dem Schema "<VirtualHost *:80> ServerName www.netzwelt.de </VirtualHost>" definieren. Neben dem "ServerName" muss der Nutzer natürlich noch eine separate Direktive mit "DocumentRoot" zu dem Eintrag hinzufügen. Virtuelle Hosts funktionieren nicht nur an Hand einer Domain, sondern auch IPs (was aber sehr selten ist). Konkurrierende Server-Programme wie Microsoft IIS bieten ähnliche Methoden an, im Apache ist die Konfiguration aber sehr einfach und auch tausende Hosts schwächen die Stabilität nicht.

Modul-Architektur mit SSL, PHP und Co.

Der zweite große Vorteil des Apache HTTP Server ist, dass er nicht wie einige kommerzielle Konkurrenten monolithisch aufgebaut ist. Stattdessen setzt sich der Funktionsumfang aus Modulen zusammen, die durch die httpd.conf an- und abgeschaltet werden können. Die Direktive "LoadModule" entscheidet, welches Modul mit seinen Funktionen beim Start des Servers geladen wird. Auf keinen Fall sollten nicht benötigte Einträge aus der Konfiguration gelöscht werden, hier lohnt sich die Auskommentierung per Raute wirklich sehr.

Das Modulsystem ist auch für dritte Programme offen: Eines der wichtigsten Module ist sicher OpenSSL, mit dem verschlüsselte Verbindungen zum Apache HTTP Server für den Surfer möglich sind. Der Assistent zur Installation auf Microsoft Windows bindet OpenSSL bereits zuverlässig ein, auf Linux wird das mit den RPM- und DEB-Paketen am besten erledigt. Mac OS X bringt hier wieder die Verschlüsselungsfunktion schon mit. 

Neben OpenSSL sind Skriptsprache ein beliebtes Modul für den Apache HTTP Server: Mit der Sprache PHP lassen sich dynamische Seiten generieren, was einer Präsenz im Netz erheblich mehr Leben gibt als nur die Auslieferung statischer Inhalte. Neben PHP gibt es auch Module von Ruby, Python und zahlreichen anderen Sprachen sowie als Verbindung zu dritten Anwendungen für den beliebtesten Webserver der Welt.

Fazit

Natürlich benötigt ein Nutzer für den erfolgreichen Umgang mit Apache deutlich mehr Wissen, als in diesem Artikel vermittelt werden konnte. Insbesondere mit der Sicherheit eines HTTP-Servers sollt sich jeder Nutzer konsequent beschäftigen, damit Angreifer keine Chance haben. Die enorme Beliebtheit der freien Software rührt vor allen von der Möglichkeit, mit virtuellen Hosts mehrere Domains auf einem Server und mit einer IP-Adresse zu betreiben. Gleichzeitig ist der Apache HTTP Server wohl der stabilste, sicherste und schnellste HTTP Server, der mit dem Modulkonzept auch leicht Anschluss an dritte Anwendungen findet.

Links zum Thema