Versión 2.0 del Servidor HTTP Apache

Cómo configurar Apache para que escuche en direcciones IP y puertos específicos.
| Módulos Relacionados | Directivas Relacionadas | 
|---|---|
Cuando Apache se inicia, comienza a esperar peticiones entrantes en determinados puertos y direcciones de la máquina en la que se está ejecutando. Sin embargo, si quiere que Apache escuche solamente en determinados puertos específicos, o solamente en determinadas direcciones, o en una combinación de ambos, debe especificarlo adecuadamente. Esto puede además combinarlo con la posibilidad de usar hosts virtuales, funcionalidad con la que un servidor Apache puede responder a peticiones en diferentes direcciones IP, diferentes nombres de hosts y diferentes puertos.
La directiva Listen
    le indica al servidor que acepte peticiones entrantes solamente en
    los puertos y en las combinaciones de puertos y direcciones que se
    especifiquen. Si solo se especifica un número de puerto en la
    directiva Listen el
    servidor escuchará en ese puerto, en todas las interfaces de
    red de la máquina. Si se especifica una dirección IP y
    un puerto, el servidor escuchará solamente en la interfaz de
    red a la que pertenezca esa dirección IP y solamente en el
    puerto indicado. Se pueden usar varias directivas Listen para
    especificar varias direcciones IP y puertos de escucha. El
    servidor responderá a las peticiones de todas las direcciones
    y puertos que se incluyan.
Por ejemplo, para hacer que el servidor acepte conexiones tanto en el puerto 80 como en el puerto 8000, puede usar:
      Listen 80
      Listen 8000
    
Para hacer que el servidor acepte conexiones en dos interfaces de red y puertos específicos, use
      Listen 192.170.2.1:80
      Listen 192.170.2.5:8000
    
Las direcciones IPv6 deben escribirse entre corchetes, como en el siguiente ejemplo:
      Listen [2001:db8::a00:20ff:fea7:ccea]:80
    
Cada vez más plataformas implementan IPv6, y APR soporta IPv6 en la mayor parte de esas plataformas, permitiendo que Apache use sockets IPv6 y pueda tratar las peticiones que se envían con IPv6.
Un factor de complejidad para los administradores de Apache es
    si un socket IPv6 puede tratar tanto conexiones IPv4 como
    IPv6. Para tratar conexiones IPv4 con sockets IPv6 se utiliza un
    traductor de direcciones IPv4-IPv6, cuyo uso está permitido
    por defecto en la mayor parte de las plataformas, pero que
    está desactivado por defecto en FreeBSD, NetBSD, y OpenBSD
    para cumplir con la política system-wide en esas
    palaformas. Pero incluso en los sistemas en los que no está
    permitido su uso por defecto, un parámetro especial de
    configure puede modificar ese
    comportamiento.
Si quiere que Apache trate conexiones IPv4 y IPv6 con un
    mínimo de sockets, lo que requiere traducir direcciones IPv4
    a IPv6, especifique la opción de configure
    --enable-v4-mapped y use directivas Listen genéricas de la
    siguiente forma:
      Listen 80
    
Con --enable-v4-mapped, las directivas Listen en
    el fichero de configuración por defecto creado por Apache
    usarán ese formato. --enable-v4-mapped es el
    valor por defecto en todas las plataformas excepto en FreeBSD,
    NetBSD, y OpenBSD, de modo que esa es probablemente la manera en
    que su servidor Apache fue construido.
Si quiere que Apache solo procese conexiones IPv4, sin tener en
    cuenta cuál es su plataforma o qué soporta APR, especifique
    una dirección IPv4 en todas las directivas Listen, como en
    estos ejemplos:
      Listen 0.0.0.0:80
      Listen 192.170.2.1:80
    
Si quiere que Apache procese conexiones IPv4 y IPv6 en sockets
    diferentes (es decir, deshabilitar la conversión de
    direcciones IPv4 a IPv6), especifique la opción de
    configure --disable-v4-mapped y
    use directivas Listen específicas como en el siguiente ejemplo:
      Listen [::]:80
      Listen 0.0.0.0:80
    
Con --disable-v4-mapped, las directivas Listen en
    el fichero de configuración que Apache crea por defecto
    usarán ese formato. --disable-v4-mapped se usa
    por defecto en FreeBSD, NetBSD, y OpenBSD.
Listen no implementa
    hosts virtuales. Solo le dice al servidor
    principal en qué direcciones y puertos tiene que escuchar. Si no
    se usan directivas <VirtualHost>, el servidor se comporta de
    la misma manera con todas las peticiones que se acepten. Sin
    embargo, <VirtualHost> puede usarse para
    especificar un comportamiento diferente en una o varias
    direcciones y puertos. Para implementar un host virtual, hay que
    indicarle primero al servidor que escuche en aquellas direcciones y
    puertos a usar. Entonces se debe crear un una sección
    <VirtualHost>
    en una dirección y puerto específicos para determinar
    el comportamiento de ese host virtual. Tenga en cuenta que si se
    especifica en una sección <VirtualHost> una dirección y puerto
    en los que el servidor no está escuchando, ese host virtual no
    podrá ser accedido.