Soporte de Apache de host virtual basado en IP

Vea también: Soporte de Apache de host virtual basado en Nombre

Requisitos del sistema

Como indica el término basado en IP, el servidor debe tener una dirección IP distinta para cada host virtual. Esto puede lograrse en una sola máquina teniendo varias conexiones físicas de red o mediante el uso de interfaces virtuales, que soportan la mayoría de los sistemas operativos modernos (vea la documentación su sistema para más detalles, a menudo se las conoce como "ip aliases", "ifconfig" es el comando más común para activarlas) .

Como activarlas en Apache

Hay dos modos de configurar Apache para que soporte múltiples hosts. Una, ejecutando un demonio httpd por cada nombre de servidor, y otra, ejecutando un solo demonio que soporte todos los hosts virtuales.

Use múltiples demonios cuando:

Use un solo demonio cuando:

Como configurar múltiples demonios

Realice una instalación separada para cada demonio. En cada instalación, use la directiva Listen en el fichero de configuración para seleccionar la dirección IP (o host virtual) a la que sirve el demonio. p.ejem.

    Listen www.smallco.com:80
Se recomienda usar la dirección IP en lugar del nombre del host (vea advertencias sobre el DNS)

Como configurar un solo demonio con hosts virtuales

En este caso, un solo demonio httpd atenderá las peticiones de servidor principal y de todos los hosts virtuales. Para definir distintos valores de las directivas ServerAdmin, ServerName, DocumentRoot, ErrorLog y TransferLog o CustomLog para distintos hosts virtuales, se utiliza en el fichero de configuración la directiva VirtualHost. Ej.

    <VirtualHost www.smallco.com>
    ServerAdmin webmaster@mail.smallco.com
    DocumentRoot /groups/smallco/www
    ServerName www.smallco.com
    ErrorLog /groups/smallco/logs/error_log
    TransferLog /groups/smallco/logs/access_log
    </VirtualHost>

    <VirtualHost www.baygroup.org>
    ServerAdmin webmaster@mail.baygroup.org
    DocumentRoot /groups/baygroup/www
    ServerName www.baygroup.org
    ErrorLog /groups/baygroup/logs/error_log
    TransferLog /groups/baygroup/logs/access_log
    </VirtualHost>

Se recomienda usar la dirección IP en lugar del nombre del host (vea advertencias sobre el DNS)

Prácticamente cualquier directiva de configuración puede ponerse dentro de una directiva VirtualHost, con las excepciones de las que controlan la creación de procesos y unas pocas más. Para averiguar si una directiva puede usarse dentro de la directiva VirtualHost verifique su contexto buscándola en el índice de directivas.

Pueden usarse User y Group dentro de una directiva VirtualHost si se usa suEXEC wrapper.

SEGURIDAD: Cuando especifique donde escribir los ficheros log, debe ser consciente de los riesgos que supone para la seguridad que un usuario distinto al que arranca el Apache tenga permiso de escritura al mismo directorio. Vea el documento consejos de seguridad para más detalles.