bind.xml revision c0c6c6e1fc6d75274623ec07b635725c5ffaaa20
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<?xml version="1.0" encoding="UTF-8" ?>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<!-- $LastChangedRevision$ -->
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd<!--
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Licensed to the Apache Software Foundation (ASF) under one or more
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd contributor license agreements. See the NOTICE file distributed with
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd this work for additional information regarding copyright ownership.
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd The ASF licenses this file to You under the Apache License, Version 2.0
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd (the "License"); you may not use this file except in compliance with
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd the License. You may obtain a copy of the License at
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd http://www.apache.org/licenses/LICENSE-2.0
27e52281f1522522b170cafc76b08b58aa70ccaand
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Unless required by applicable law or agreed to in writing, software
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd distributed under the License is distributed on an "AS IS" BASIS,
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4b5981e276e93df97c34e4da05ca5cf8bbd937dand See the License for the specific language governing permissions and
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd limitations under the License.
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd-->
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi<manualpage metafile="bind.xml.meta">
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi <title>Binding</title>
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <summary>
9bcfc3697a91b5215893a7d0206865b13fc72148nd <p>Configuring Apache HTTP Server (httpd) to listen on specific addresses and ports.</p>
9bcfc3697a91b5215893a7d0206865b13fc72148nd </summary>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <seealso><a href="vhosts/">Virtual Hosts</a></seealso>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <seealso><a href="dns-caveats.html">DNS Issues</a></seealso>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <section id="overview">
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <title>Overview</title>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <related>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <modulelist>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <module>core</module>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <module>mpm_common</module>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd </modulelist>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <directivelist>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <directive module="core" type="section">VirtualHost</directive>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <directive module="mpm_common">Listen</directive>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd </directivelist>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd </related>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>When httpd starts, it binds to some port and address on
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd the local machine and waits for incoming requests. By default,
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd it listens to all addresses on the machine. However, it may need to
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd be told to listen on specific ports, or only on selected
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd addresses, or a combination of both. This is often combined with the
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Virtual Host feature, which determines how httpd responds to
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd different IP addresses, hostnames and ports.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>The <directive module="mpm_common">Listen</directive>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd directive tells the server to accept
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd incoming requests only on the specified ports or
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd address-and-port combinations. If only a port number is
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd specified in the <directive module="mpm_common">Listen</directive>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd directive, the server
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd listens to the given port on all interfaces. If an IP address
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd is given as well as a port, the server will listen on the given
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd port and interface. Multiple <directive
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd module="mpm_common">Listen</directive> directives may be used to
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd specify a number of addresses and ports to listen on. The
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd server will respond to requests from any of the listed
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd addresses and ports.</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>For example, to make the server accept connections on both
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd port 80 and port 8000, on all interfaces, use:</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <example>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Listen 80<br />
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Listen 8000
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd </example>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>To make the server accept connections on port 80 for one interface,
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd and port 8000 on another, use</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <example>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Listen 192.0.2.1:80<br />
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Listen 192.0.2.5:8000
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd </example>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>IPv6 addresses must be enclosed in square brackets, as in the
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd following example:</p>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <example>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd Listen [2001:db8::a00:20ff:fea7:ccea]:80
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd </example>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd </section>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <section id="ipv6">
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <title>Special IPv6 Considerations</title>
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd <p>A growing number of platforms implement IPv6, and
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd <glossary>APR</glossary> supports IPv6 on most of these platforms,
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd allowing httpd to allocate IPv6 sockets, and to handle requests sent
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi over IPv6.</p>
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi <p>One complicating factor for httpd administrators is whether or
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi not an IPv6 socket can handle both IPv4 connections and IPv6
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd connections. Handling IPv4 connections with an IPv6 socket uses
b036ef2952fb6924b308f954b39786443460ddc6rpluem IPv4-mapped IPv6 addresses, which are allowed by default on most
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd platforms, but are disallowed by default on FreeBSD, NetBSD, and
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd OpenBSD, in order to match the system-wide policy on those
platforms. On systems where it is disallowed by default, a
special <program>configure</program> parameter can change this behavior
for httpd.</p>
<p>On the other hand, on some platforms, such as Linux and Tru64, the
<strong>only</strong> way to handle both IPv6 and IPv4 is to use
mapped addresses. If you want httpd to handle IPv4 and IPv6 connections
with a minimum of sockets, which requires using IPv4-mapped IPv6
addresses, specify the <code>--enable-v4-mapped</code> <program>
configure</program> option.</p>
<p><code>--enable-v4-mapped</code> is the default on all platforms except
FreeBSD, NetBSD, and OpenBSD, so this is probably how your httpd was
built.</p>
<p>If you want httpd to handle IPv4 connections only, regardless of
what your platform and APR will support, specify an IPv4 address on all
<directive module="mpm_common">Listen</directive> directives, as in the
following examples:</p>
<example>
Listen 0.0.0.0:80<br />
Listen 192.0.2.1:80
</example>
<p>If your platform supports it and you want httpd to handle IPv4 and
IPv6 connections on separate sockets (i.e., to disable IPv4-mapped
addresses), specify the <code>--disable-v4-mapped</code> <program>
configure</program> option. <code>--disable-v4-mapped</code> is the
default on FreeBSD, NetBSD, and OpenBSD.</p>
</section>
<section id="virtualhost">
<title>How This Works With Virtual Hosts</title>
<p> The <directive
module="mpm_common">Listen</directive> directive does not implement
Virtual Hosts - it only tells the
main server what addresses and ports to listen on. If no
<directive module="core" type="section">VirtualHost</directive>
directives are used, the server will behave
in the same way for all accepted requests. However,
<directive module="core" type="section">VirtualHost</directive>
can be used to specify a different behavior
for one or more of the addresses or ports. To implement a
VirtualHost, the server must first be told to listen to the
address and port to be used. Then a
<directive module="core" type="section">VirtualHost</directive> section
should be created for the specified address and port to set the
behavior of this virtual host. Note that if the
<directive module="core" type="section">VirtualHost</directive>
is set for an address and port that the
server is not listening to, it cannot be accessed.</p>
</section>
</manualpage>