| <?xml version="1.0" encoding="UTF-8" ?> | |
| <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"> | |
| <?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?> | |
| <!-- English Revision: 1816110:1933437 (outdated) --> | |
| <!-- | |
| Licensed to the Apache Software Foundation (ASF) under one or more | |
| contributor license agreements. See the NOTICE file distributed with | |
| this work for additional information regarding copyright ownership. | |
| The ASF licenses this file to You under the Apache License, Version 2.0 | |
| (the "License"); you may not use this file except in compliance with | |
| the License. You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software | |
| distributed under the License is distributed on an "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| See the License for the specific language governing permissions and | |
| limitations under the License. | |
| --> | |
| <manualpage metafile="bind.xml.meta"> | |
| <title>An Adressen und Ports binden</title> | |
| <summary> | |
| <p>Konfiguration der vom Apache HTTP Server verwendeten Adressen und | |
| Ports.</p> | |
| </summary> | |
| <seealso><a href="vhosts/">Virtuelle Hosts</a></seealso> | |
| <seealso><a href="dns-caveats.html">Probleme bezüglich DNS und | |
| Apache</a></seealso> | |
| <section id="overview"> | |
| <title>Überblick</title> | |
| <related> | |
| <modulelist> | |
| <module>core</module> | |
| <module>mpm_common</module> | |
| </modulelist> | |
| <directivelist> | |
| <directive module="core" type="section">VirtualHost</directive> | |
| <directive module="mpm_common">Listen</directive> | |
| </directivelist> | |
| </related> | |
| <p>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 <a | |
| href="vhosts/">virtueller Hosts</a> kombiniert, die bestimmt, wie | |
| der <code>httpd</code> auf verschiedene IP-Adressen, Hostnamen und | |
| Ports reagiert.</p> | |
| <p>Die Direktive <directive module="mpm_common">Listen</directive> | |
| weist den Server an, eingehende Anfragen nur an bestimmten Port(s) | |
| oder Adress/Port-Kombinationen zu akzeptieren. Wenn bei der | |
| <directive module="mpm_common">Listen</directive>-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 <directive | |
| module="mpm_common">Listen</directive>-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.</p> | |
| <p>Um beispielsweise den Server zu veranlassen, auf allen | |
| Netzwerkinterfaces sowohl an Port 80, als auch an Port 8000 | |
| Verbindungen zu akzeptieren, geben Sie an:</p> | |
| <example> | |
| <highlight language="config"> | |
| Listen 80 | |
| Listen 8000 | |
| </highlight> | |
| </example> | |
| <p>Um den Server Verbindungen an Port 80 auf einem Netzwerkinterface | |
| akzeptieren zu lassen und an Port 8080 auf einem anderen Interface, geben | |
| Sie an:</p> | |
| <example> | |
| <highlight language="config"> | |
| Listen 192.0.2.1:80 | |
| Listen 192.0.2.5:8000 | |
| </highlight> | |
| </example> | |
| <p>IPv6-Adressen müssen wie im folgenden Beispiel in eckigen | |
| Klammern angegeben werden:</p> | |
| <example> | |
| <highlight language="config"> | |
| Listen [2001:db8::a00:20ff:fea7:ccea]:80 | |
| </highlight> | |
| </example> | |
| <note type="warning"><p>Sich überlappende <directive | |
| module="mpm_common">Listen</directive>-Direktiven generieren einen | |
| fatalen Fehler, der verhindert, dass der Server hochfährt.</p> | |
| <example> | |
| (48)Address already in use: make_sock: could not bind to address [::]:80 | |
| </example> | |
| <p><a | |
| href="https://cwiki.apache.org/confluence/display/httpd/CouldNotBindToAddress">Diese | |
| Diskussion im Wiki</a> gibt weitere Tipps zur Fehlerbehebung.</p> | |
| </note> | |
| </section> | |
| <section id="reload"> | |
| <title>Änderung der Listen-Konfiguration beim Neustart</title> | |
| <p>Wenn der httpd neu gestartet wird, müssen Änderungen an | |
| <directive module="mpm_common">Listen</directive>-Direktiven besonders | |
| beachtet werden. Während eines Neustarts bleiben die Ports an den httpd | |
| gebunden (wie in der ursprünglichen Konfiguration), um | |
| "Connection refused"-Fehler für neue Verbindungsversuche zum | |
| Server zu vermeiden. Wenn Änderungen an den verwendeten | |
| <directive module="mpm_common">Listen</directive>-Direktiven vorgenommen | |
| werden, die mit der alten Konfiguration in Konflikt stehen, schlägt | |
| die Konfiguration fehl und der Server wird beendet.</p> | |
| <p>Zum Beispiel kann die Änderung der Konfiguration von:</p> | |
| <example> | |
| <highlight language="config"> | |
| Listen 127.0.0.1:80 | |
| </highlight> | |
| </example> | |
| <p>zur folgenden Konfiguration fehlschlagen, da das Binden an | |
| Port 80 auf allen Adressen mit dem Binden an Port 80 auf nur | |
| 127.0.0.1 in Konflikt steht.</p> | |
| <example> | |
| <highlight language="config"> | |
| Listen 80 | |
| </highlight> | |
| </example> | |
| <p>Damit solche Konfigurationsänderungen wirksam werden, muss | |
| der Server gestoppt und dann neu gestartet werden.</p> | |
| </section> | |
| <section id="ipv6"> | |
| <title>Betrachtung von IPv6-Besonderheiten</title> | |
| <p>Eine wachsende Anzahl von Plattformen implementiert IPv6. Die | |
| <glossary>APR</glossary> unterstützt IPv6 auf den meisten | |
| dieser Plattformen und ermöglicht dem httpd, IPv6-Sockets zu | |
| verwenden und über IPv6 gesendete Anfragen zu behandeln.</p> | |
| <p>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 <transnote>so genannete | |
| IPv4-gemappte IPv6-Adressen</transnote> 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 <program>configure</program>-Parameter für den | |
| httpd geändert werden.</p> | |
| <p>Auf der anderen Seite ist die Verwendung von gemappten Adressen | |
| bei einigen Plattformen wie Linux und True64 der | |
| <strong>einzige</strong> Weg, sowohl IPv4 wie auch IPv6 zu | |
| verwenden. Wenn Sie möchten, dass der <code>httpd</code> IPv4- | |
| und IPv6-Verbindungen mit einem Minimum an Sockets behandelt, was | |
| die Verwendung von IPv4-gemappten IPv6-Adressen erfordert, dann | |
| müssen Sie die <program> configure</program>-Option | |
| <code>--enable-v4-mapped</code> angeben.</p> | |
| <p><code>--enable-v4-mapped</code> ist die Voreinstellung auf allen | |
| Plattformen außer FreeBSD, NetBSD und OpenBSD, so dass Ihr | |
| httpd wahrscheinlich so übersetzt wurde.</p> | |
| <p>Geben Sie wie in dem folgenden Beispiel bei allen <directive | |
| module="mpm_common">Listen</directive>-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:</p> | |
| <example> | |
| <highlight language="config"> | |
| Listen 0.0.0.0:80 | |
| Listen 192.0.2.1:80 | |
| </highlight> | |
| </example> | |
| <p>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 <program>configure</program>-Option | |
| <code>--disable-v4-mapped</code> angeben. Unter FreeBSD, NetBSD und | |
| OpenBSD ist <code>--disable-v4-mapped</code> voreingestellt.</p> | |
| </section> | |
| <section id="protocol"> | |
| <title>Angabe des Protokolls bei Listen</title> | |
| <p>Das optionale zweite <var>Protokoll</var>-Argument von <directive | |
| module="mpm_common">Listen</directive> ist für die meisten | |
| Konfigurationen gar nicht erforderlich. Wenn nicht angegeben, sind | |
| <code>https</code> für Port 443 und <code>http</code> 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 <directive module="core">AcceptFilter</directive>-Direktive | |
| zu aktivieren.</p> | |
| <p>Sie müssen das Protokoll nur angeben, wenn Sie | |
| ungewöhnliche Ports benutzen, beispielsweise <code>https</code> | |
| auf Port 8443:</p> | |
| <example> | |
| <highlight language="config"> | |
| Listen 192.170.2.1:8443 https | |
| </highlight> | |
| </example> | |
| </section> | |
| <section id="virtualhost"> | |
| <title>Das Zusammenspiel mit virtuellen Hosts</title> | |
| <p>Die Direktive <directive module="mpm_common">Listen</directive> | |
| implementiert keine virtuellen Hosts - sie teilt dem Hauptserver | |
| lediglich mit, an welchen Adressen und Ports er zu lauschen hat. | |
| Werden keine <directive module="core" | |
| type="section">VirtualHost</directive>-Container verwendet, dann | |
| verhält sich der Server bei allen angenommenen Anfragen gleich. | |
| <directive module="core" | |
| type="section">VirtualHost</directive>-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 | |
| <directive module="core" | |
| type="section">VirtualHost</directive>-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 <directive module="core" | |
| type="section">VirtualHost</directive> nicht zugegriffen werden | |
| kann, wenn er für eine Adresse und einen Port eingerichtet | |
| wurde, an dem der Server nicht lauscht.</p> | |
| </section> | |
| </manualpage> |