bind.xml revision efcdf6bd09d3edaacd4db8e3b6af0678a1201d52
5205N/A<?xml version="1.0" encoding="UTF-8" ?>
5205N/A<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
5205N/A<?xml-stylesheet type="text/xsl" href="/style/manual.en.xsl"?>
5205N/A<!-- $Revision: 1.13 $ -->
5205N/A
5205N/A<!--
5205N/A Copyright 2002-2004 The Apache Software Foundation
5205N/A
5205N/A Licensed under the Apache License, Version 2.0 (the "License");
5205N/A you may not use this file except in compliance with the License.
5205N/A You may obtain a copy of the License at
5205N/A
5205N/A http://www.apache.org/licenses/LICENSE-2.0
5205N/A
5205N/A Unless required by applicable law or agreed to in writing, software
5205N/A distributed under the License is distributed on an "AS IS" BASIS,
5205N/A WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5205N/A See the License for the specific language governing permissions and
5205N/A limitations under the License.
5205N/A-->
5205N/A
5205N/A<manualpage metafile="bind.xml.meta">
5205N/A
5205N/A <title>Binding</title>
5205N/A
6226N/A <summary>
5205N/A <p>Configuring Apache to listen on specific addresses and ports.</p>
5205N/A </summary>
5205N/A
5205N/A <seealso><a href="vhosts/">Virtual Hosts</a></seealso>
6226N/A <seealso><a href="dns-caveats.html">DNS Issues</a></seealso>
5205N/A
5205N/A <section id="overview">
5205N/A <title>Overview</title>
5205N/A
5205N/A <related>
5205N/A <modulelist>
5205N/A <module>core</module>
5205N/A <module>mpm_common</module>
5205N/A </modulelist>
5205N/A <directivelist>
5205N/A <directive module="core" type="section">VirtualHost</directive>
5205N/A <directive module="mpm_common">Listen</directive>
5205N/A </directivelist>
5205N/A </related>
5205N/A
5205N/A
5205N/A <p>When Apache starts, it binds to some port and address on
5205N/A the local machine and waits for incoming requests. By default,
6226N/A it listens to all addresses on the machine. However, it needs to
5205N/A be told to listen on specific ports, or to listen on only selected
5205N/A addresses, or a combination. This is often combined with the
5205N/A Virtual Host feature which determines how Apache responds to
5205N/A different IP addresses, hostnames and ports.</p>
5205N/A
5205N/A <p>The <directive module="mpm_common">Listen</directive>
5205N/A directive tells the server to accept
5205N/A incoming requests only on the specified port or
5205N/A address-and-port combinations. If only a port number is
5205N/A specified in the <directive module="mpm_common">Listen</directive>
5205N/A directive, the server
5205N/A listens to the given port on all interfaces. If an IP address
5205N/A is given as well as a port, the server will listen on the given
5205N/A port and interface. Multiple <directive
5205N/A module="mpm_common">Listen</directive> directives may be used to
5205N/A specify a number of addresses and ports to listen on. The
5205N/A server will respond to requests from any of the listed
5205N/A addresses and ports.</p>
5205N/A
5205N/A <p>For example, to make the server accept connections on both
5205N/A port 80 and port 8000, use:</p>
5205N/A
5205N/A <example>
5205N/A Listen 80<br />
5205N/A Listen 8000
5205N/A </example>
5205N/A
5205N/A <p>To make the server accept connections on two specified
5205N/A interfaces and port numbers, use</p>
5205N/A
5205N/A <example>
5205N/A Listen 192.170.2.1:80<br />
5205N/A Listen 192.170.2.5:8000
5205N/A </example>
5205N/A
5205N/A <p>IPv6 addresses must be surrounded in square brackets, as in the
5205N/A following example:</p>
5205N/A
5205N/A <example>
5205N/A Listen [fe80::a00:20ff:fea7:ccea]:80
5205N/A </example>
5205N/A </section>
5205N/A
5205N/A <section id="ipv6">
5205N/A <title>Special IPv6 Considerations</title>
5205N/A
6226N/A <p>A growing number of platforms implement IPv6, and APR supports
6226N/A IPv6 on most of these platforms, allowing Apache to allocate IPv6
6221N/A sockets and handle requests which were sent over IPv6.</p>
5205N/A
5205N/A <p>One complicating factor for Apache administrators is whether or
5205N/A not an IPv6 socket can handle both IPv4 connections and IPv6
5205N/A connections. Handling IPv4 connections with an IPv6 socket uses
5205N/A IPv4-mapped IPv6 addresses, which are allowed by default on most
5205N/A platforms but are disallowed by default on FreeBSD, NetBSD, and
5205N/A OpenBSD in order to match the system-wide policy on those
5205N/A platforms. But even on systems where it is disallowed by default, a
5205N/A special configure parameter can change this behavior for Apache.</p>
5205N/A
5205N/A <p>On the other hand, on some platforms such as Linux and Tru64 the
5205N/A <strong>only</strong> way to handle both IPv6 and IPv4 is to use
5205N/A mapped addresses. If you want Apache to handle IPv4 and IPv6 connections
5205N/A with a minimum of sockets, which requires using IPv4-mapped IPv6
5205N/A addresses, specify the <code>--enable-v4-mapped</code> <a
5205N/A href="programs/configure.html">configure</a> option.</p>
5205N/A
5205N/A <p><code>--enable-v4-mapped</code> is the default on all platforms but
5205N/A FreeBSD, NetBSD, and OpenBSD, so this is probably how your Apache was
5205N/A built.</p>
<p>If you want Apache 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.170.2.1:80
</example>
<p>If your platform supports it and you want Apache to handle IPv4 and
IPv6 connections on separate sockets (i.e., to disable IPv4-mapped
addresses), specify the <code>--disable-v4-mapped</code> <a
href="programs/configure.html">configure</a> 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> <directive
module="mpm_common">Listen</directive> does not implement
Virtual Hosts. It only tells the
main server what addresses and ports to listen to. If no
<directive module="core" type="section">VirtualHost</directive>
directives are used, the server will behave
the same 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 and 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 a 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>