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