Apache HTTP Server Version 2.4
Konfiguration der vom Apache HTTP Server verwendeten Adressen und Ports.
Referenzierte Module | Referenzierte Direktiven |
---|---|
Beim Start bindet sich der httpd an bestimmte Adressen und Ports
der lokalen Maschine und wartet auf eingehende Anfragen.
Standardm��ig lauscht er an allen Adressen des Systems.
Es kann jeodch notwendig sein, ihm mit zuteilen, nur an bestimmten
Ports zu lauschen oder nur an ausgew�hlten Adressen, bzw. einer
Kombination aus beidem. Dies wird oft mit der Funktionalit�t virtueller Hosts kombiniert, die bestimmt, wie
der httpd
auf verschiedene IP-Adressen, Hostnamen und
Ports reagiert.
Die Direktive Listen
weist den Server an, eingehende Anfragen nur an bestimmten Port(s)
oder Adress/Port-Kombinationen zu akzeptieren. Wenn bei der
Listen
-Direktive nur eine
Portnummer angegeben wird, dann lauscht der Server auf allen
Netzwerkinterfaces an dem angegebenen Port. Ist auch eine IP-Adresse
angegeben, dann lauscht der Server an der angegebenen Schnittstelle
auf dem angegebenen Port. Es k�nnen mehrere Listen
-Anweisungen verwendet werden,
um eine Reihe von Adressen und Ports anzugeben, an denen gelauscht
werden soll. Der Server wird dann auf Anfragen an jeder der
abgeh�rten Adressen und Ports antworten.
Um beispielsweise den Server zu veranlassen, auf allen Netzwerkinterfaces sowohl an Port 80, als auch an Port 8000 Verbindungen zu akzeptieren, geben Sie an:
Listen 80 Listen 8000
Um den Server Verbindungen an Port 80 auf einem Netzwerkinterface akzeptieren zu lassen und an Port 8080 auf einem anderen Interface, geben Sie an:
Listen 192.0.2.1:80 Listen 192.0.2.5:8000
IPv6-Adressen m�ssen wie im folgenden Beispiel in eckigen Klammern angegeben werden:
Listen [2001:db8::a00:20ff:fea7:ccea]:80
Sich �berlappende Listen
-Direktiven generieren einen
fatalen Fehler, der verhindert, dass der Server hochf�hrt.
(48)Address already in use: make_sock: could not bind to address [::]:80
Diese Diskussion im Wiki gibt weitere Tipps zur Fehlerbehebung.
Eine wachsende Anzahl von Plattformen implementiert IPv6. Die APR unterst�tzt IPv6 auf den meisten dieser Plattformen und erm�glicht dem httpd, IPv6-Sockets zu verwenden und �ber IPv6 gesendete Anfragen zu behandeln.
F�r httpd-Administratoren kommt erschwerend die Frage hinzu,
ob IPv6-Sockets sowohl IPv4- als auch IPv6-Verbindungen handhaben
k�nnen. Zum Betrieb von IPv4-Verbindungen an IPv6-Sockets
werden auf IPv6 abgebildete IPv4-Adressen (Anm.d.�.: so genannete
IPv4-gemappte IPv6-Adressen) verwendet, welche
standardm��ig auf den meisten Plattformen erlaubt sind.
Unter FreeBSD, NetBSD und OpenBSD jedoch sind sie
standardm��ig deaktiviert, um den Systemgrunds�tzen
dieser Plattformen zu entsprechen. Auf Systemen, wo dies
standardm��ig dekativiert ist, kann dieses Verhalten mit
einem speziellen configure
-Parameter f�r den
httpd ge�ndert werden.
Auf der anderen Seite ist die Verwendung von gemappten Adressen
bei einigen Plattformen wie Linux und True64 der
einzige Weg, sowohl IPv4 wie auch IPv6 zu
verwenden. Wenn Sie m�chten, dass der httpd
IPv4-
und IPv6-Verbindungen mit einem Minimum an Sockets behandelt, was
die Verwendung von IPv4-gemappten IPv6-Adressen erfordert, dann
m�ssen Sie die configure
-Option
--enable-v4-mapped
angeben.
--enable-v4-mapped
ist die Voreinstellung auf allen
Plattformen au�er FreeBSD, NetBSD und OpenBSD, so dass Ihr
httpd wahrscheinlich so �bersetzt wurde.
Geben Sie wie in dem folgenden Beispiel bei allen Listen
-Anweisungen eine IPv4-Adresse
an, wenn Sie m�chten, dass Ihr httpd lediglich IPv4-Adressen
behandelt, unabh�ngig davon, was Ihre Plattform und die APR
unterst�tzen:
Listen 0.0.0.0:80 Listen 192.0.2.1:80
Wenn Sie m�chten, dass der httpd IPv4- und IPv6-Verbindungen
an separaten Sockets behandelt (d.h. IPv4-gemappte Adressen
deaktiviert werden sollen) und Ihre Plattform es unterst�tzt,
dann m�ssen Sie die configure
-Option
--disable-v4-mapped
angeben. Unter FreeBSD, NetBSD und
OpenBSD ist --disable-v4-mapped
voreingestellt.
Das optionale zweite Protokoll-Argument von Listen
ist f�r die meisten
Konfigurationen gar nicht erforderlich. Wenn nicht angegeben, sind
https
f�r Port 443 und http
f�r
alle anderen Ports die Voreinstellungen. Die Protokollangabe wird
sowohl dazu verwendet, herauszufinden, welches Modul Anfragen
verarbeiten soll, als auch, um protokollspezifische Optimierungen
bei der AcceptFilter
-Direktive
zu aktivieren.
Sie m�ssen das Protokoll nur angeben, wenn Sie
ungew�hnliche Ports benutzen, beispielsweise https
auf Port 8443:
Listen 192.170.2.1:8443 https
Die Direktive Listen
implementiert keine virtuellen Hosts - sie teilt dem Hauptserver
lediglich mit, an welchen Adressen und Ports er zu lauschen hat.
Werden keine <VirtualHost>
-Container verwendet, dann
verh�lt sich der Server bei allen angenommenen Anfragen gleich.
<VirtualHost>
-Abschnitte k�nnen jedoch
dazu verwendet werden, ein unterschiedliches Verhalten f�r eine
oder mehrere Adressen und Ports festzulegen. Um einen virtuellen
Host einzurichten, muss dem Server zun�chst mitgeteilt werden,
an den betreffenden Adressen oder Ports zu lauschen. Dann sollte ein
<VirtualHost>
-Abschnitt f�r die
angebene Adresse und den angegebenen Port erstellt werden, um das
Verhalten dieses virtuellen Hosts festzulegen. Beachten Sie bitte,
dass auf einen <VirtualHost>
nicht zugegriffen werden
kann, wenn er f�r eine Adresse und einen Port eingerichtet
wurde, an dem der Server nicht lauscht.