| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta name="generator" content="HTML Tidy, see www.w3.org" /> |
| |
| <title>Setting which addresses and ports Apache uses</title> |
| </head> |
| <!-- Background white, links blue (unvisited), navy (visited), red (active) --> |
| |
| <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" |
| vlink="#000080" alink="#FF0000"> |
| <!--#include virtual="header.html" --> |
| |
| <h1 align="CENTER">Setting which addresses and ports Apache |
| uses</h1> |
| |
| <p>When Apache starts, it connects 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 to specific ports, or to listen to 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>Listen</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>Listen</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 Listen directives may be used to |
| specify a number of addresses and ports to listen to. 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> |
| <pre> |
| Listen 80 |
| Listen 8000 |
| </pre> |
| To make the server accept connections on two specified |
| interfaces and port numbers, use |
| <pre> |
| Listen 192.170.2.1:80 |
| Listen 192.170.2.5:8000 |
| </pre> |
| IPv6 addresses must be surrounded in square brackets, as in the |
| following example: |
| <pre> |
| Listen [fe80::a00:20ff:fea7:ccea]:80 |
| </pre> |
| |
| <h2>Special IPv6 considerations</h2> |
| |
| When APR supports IPv6, Apache will create IPv6-capable listening |
| sockets by default (i.e., when no IP address is specified on the |
| Listen directive). In other words, when APR supports IPv6, |
| <pre> |
| Listen 80 |
| </pre> |
| is equivalent to |
| <pre> |
| Listen [::]:80 |
| </pre> |
| When APR does not support IPv6, |
| <pre> |
| Listen 80 |
| </pre> |
| is equivalent to |
| <pre> |
| Listen 0.0.0.0:80 |
| </pre> |
| On some platforms, such as NetBSD, binding to the IPv6 wildcard address |
| ("::") does not allow Apache to accept connections on IPv4 interfaces. |
| In this situation, multiple Listen directives are required, as shown |
| below: |
| <pre> |
| Listen 0.0.0.0:80 |
| Listen [::]:80 |
| </pre> |
| Apache does not currently detect this, so the Listen statements must |
| be edited manually by the administrator. |
| |
| <h2>How this works with Virtual Hosts</h2> |
| |
| <p>Listen does not implement Virtual Hosts. It only tells the |
| main server what addresses and ports to listen to. If no |
| <VirtualHost> directives are used, the server will behave |
| the same for all accepted requests. However, |
| <VirtualHost> 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 <VirtualHost> section |
| should be created for a specified address and port to set the |
| behavior of this virtual host. Note that if the |
| <VirtualHost> is set for an address and port that the |
| server is not listening to, it cannot be accessed.</p> |
| |
| <h2>See also</h2> |
| See also the documentation on <a |
| href="mod/mpm_common.html#listen">Listen directive</a>, <a |
| href="vhosts/">Virtual Hosts</a>, <a |
| href="dns-caveats.html">DNS Issues</a> and <a |
| href="mod/core.html#virtualhost"><VirtualHost> |
| section</a>. <!--#include virtual="footer.html" --> |
| </body> |
| </html> |
| |