<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<meta content="noindex, nofollow" name="robots" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Binding - Apache HTTP Server</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="./images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/bind.html" rel="canonical" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p>
<p class="apache">Apache HTTP Server Version 2.0</p>
<img alt="" src="./images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.0</a></div><div id="page-content"><div class="retired"><h4>Please note</h4>
            <p>This document refers to the <strong>2.0</strong> version of Apache httpd, which <strong>is no longer maintained</strong>. Upgrade, and refer to the current version of httpd instead, documented at:</p>
        <ul><li><a href="http://httpd.apache.org/docs/current/">Current release version of Apache HTTP Server documentation</a></li></ul><p>You may follow <a href="http://httpd.apache.org/docs/current/bind.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Binding</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="./en/bind.html" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/bind.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
<a href="./fr/bind.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/bind.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/bind.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/bind.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div>

    <p>Configuring Apache to listen on specific addresses and ports.</p>
  </div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#overview">Overview</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#ipv6">Special IPv6 Considerations</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#virtualhost">How This Works With Virtual Hosts</a></li>
</ul><h3>See also</h3><ul class="seealso"><li><a href="vhosts/">Virtual Hosts</a></li><li><a href="dns-caveats.html">DNS Issues</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="overview" id="overview">Overview</a></h2>
    

    <table class="related"><tr><th>Related Modules</th><th>Related Directives</th></tr><tr><td><ul><li><code class="module"><a href="./mod/core.html">core</a></code></li><li><code class="module"><a href="./mod/mpm_common.html">mpm_common</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code></li><li><code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code></li></ul></td></tr></table>


    <p>When Apache starts, it binds to some port and address on
    the local machine and waits for incoming requests. By default,
    it listens to all addresses on the machine.  However, it needs to
    be told to listen on specific ports, or to listen on only selected 
    addresses, or a combination. This is often combined with the 
    Virtual Host feature which determines how Apache responds to 
    different IP addresses, hostnames and ports.</p>

    <p>The <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code>
    directive tells the server to accept
    incoming requests only on the specified port or
    address-and-port combinations. If only a port number is
    specified in the <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code>
    directive, the server
    listens to the given port on all interfaces. If an IP address
    is given as well as a port, the server will listen on the given
    port and interface. Multiple <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code> directives may be used to
    specify a number of addresses and ports to listen on. The
    server will respond to requests from any of the listed
    addresses and ports.</p>

    <p>For example, to make the server accept connections on both
    port 80 and port 8000, use:</p>

    <div class="example"><p><code>
      Listen 80<br />
      Listen 8000
    </code></p></div>

    <p>To make the server accept connections on two specified
    interfaces and port numbers, use</p>

    <div class="example"><p><code>
      Listen 192.170.2.1:80<br />
      Listen 192.170.2.5:8000
    </code></p></div>

    <p>IPv6 addresses must be surrounded in square brackets, as in the
    following example:</p>

    <div class="example"><p><code>
      Listen [2001:db8::a00:20ff:fea7:ccea]:80
    </code></p></div>
  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="ipv6" id="ipv6">Special IPv6 Considerations</a></h2>
    

    <p>A growing number of platforms implement IPv6, and APR supports 
    IPv6 on most of these platforms, allowing Apache to allocate IPv6 
    sockets and handle requests which were sent over IPv6.</p>

    <p>One complicating factor for Apache administrators is whether or
    not an IPv6 socket can handle both IPv4 connections and IPv6 
    connections.  Handling IPv4 connections with an IPv6 socket uses 
    IPv4-mapped IPv6 addresses, which are allowed by default on most 
    platforms but are disallowed by default on FreeBSD, NetBSD, and 
    OpenBSD in order to match the system-wide policy on those
    platforms.  But even on systems where it is disallowed by default, a 
    special <code class="program"><a href="./programs/configure.html">configure</a></code> parameter can change this behavior
    for Apache.</p>

    <p>If you want Apache 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> <code class="program"><a href="./programs/configure.html">configure</a></code>
    option and use generic <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code>
    directives like the following:</p>

    <div class="example"><p><code>
      Listen 80
    </code></p></div>

    <p>With <code>--enable-v4-mapped</code>, the Listen directives in the 
    default configuration file created by Apache will use this form.  
    <code>--enable-v4-mapped</code> is the default on all platforms but 
    FreeBSD, NetBSD, and OpenBSD, so this is probably how your Apache was 
    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 
    <code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code> directives, as in the
    following examples:</p>

    <div class="example"><p><code>
      Listen 0.0.0.0:80<br />
      Listen 192.170.2.1:80
    </code></p></div>

    <p>If 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> <code class="program"><a href="./programs/configure.html">configure</a></code> option and
    use specific Listen directives like the following:</p>

    <div class="example"><p><code>
      Listen [::]:80<br />
      Listen 0.0.0.0:80
    </code></p></div>

    <p>With <code>--disable-v4-mapped</code>, the Listen directives in the 
    default configuration file created by Apache will use this form.  
    <code>--disable-v4-mapped</code> is the default on FreeBSD, NetBSD, and 
    OpenBSD.</p>

  </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="virtualhost" id="virtualhost">How This Works With Virtual Hosts</a></h2>
    

    <p><code class="directive"><a href="./mod/mpm_common.html#listen">Listen</a></code> does not implement
    Virtual Hosts. It only tells the main server what addresses and ports to
    listen to. If no <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> directives are used, the server will behave
    the same for all accepted requests. However,
    <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>
    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
    <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> section
    should be created for a specified address and port to set the
    behavior of this virtual host. Note that if the
    <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>
    is set for an address and port that the
    server is not listening to, it cannot be accessed.</p>
  </div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="./en/bind.html" title="English">&nbsp;en&nbsp;</a> |
<a href="./es/bind.html" hreflang="es" rel="alternate" title="Espa&#241;ol">&nbsp;es&nbsp;</a> |
<a href="./fr/bind.html" hreflang="fr" rel="alternate" title="Fran&#231;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/bind.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/bind.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/bind.html" hreflang="tr" rel="alternate" title="T&#252;rk&#231;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2013 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossary</a> | <a href="./sitemap.html">Sitemap</a></p></div>
</body></html>