Anbindung
Konfiguration der vom Apache verwendeten Adressen und Ports.
Virtuelle Hosts
Probleme bezüglich DNS und
Apache
Überblick
core
mpm_common
VirtualHost
Listen
Beim Start bindet sich der Apache 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 Apache auf
verschiedene IP-Adressen, Hostnamen und Ports reagiert.
Die Direktive Listen
weist den Server an, eingehende Anfragen nur an bestimmten Ports 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
Betrachtung von IPv6-Besonderheiten
Eine wachsende Anzahl von Plattformen implementiert IPv6. Die
APR
unterstützt IPv6 auf den meisten dieser Plattformen und
ermöglicht dem Apache, IPv6-Sockets zu verwenden und über IPv6
gesendete Anfragen zu behandeln.
Für Apache-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
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 Apache
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 Apache 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 Apache
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 Apache 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 Apache 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 Zusammenspiel mit virtuellen Hosts
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.