Crear servidors virtuals amb l'apache

Aquest document intenta explicar com crear sota un mateix servidor diversos servidors virtuals. A vegades ens pot interesar tenir més d'un servidor dins de la matèixa màquina, potser completament independent els uns dels altres, la solució està en fer servir servidors virtuals. El servidor apache ens portarà a un o altre servidor virtual en funció de diverses condicions que volgem considerarar, com ara ip a la que s'accedeix o adreça introduïda.

En aquest document em baso en una instal·lació de debian, branca sarge, amb la versió d'apache 2.0.51-2, tot i que és suportat el seu us des de la versió 1.1. Ho he fet mitjançant synaptic elegint el paquet apache2 i automàticament ha seleccinat les dependències necessaries.

En aquest cas suposarem que volem crear dos servidors virtuals www.servidor1.com i www.servidor2.com, ambdos compartint la mateixa ip i diferenciant-se per la dns. A part d'això i afegirem un segon servidor dintre d'una altra xarxa, com per exemple server.guifi.net (només serà accessible dins d'aquesta xarxa pq ho volem fer així).

Una vegada instal·lat anem a l'arxiu de configuració /etc/apache2/apache2.conf (a mandrake és a /etc/httpd/httpd2.conf). Ara cal afegir el següent a l'arxiu:

NameVirtualServer 127.0.0.1
NameVirtualServer 172.26.0.2

<VirtualHost 127.0.0.1 172.26.0.2>
DocumentRoot /www/servidor1
ServerName www.servidor1.com
ServerAlias servidor1.com
</VirtualHost>

<VirtualHost 127.0.0.1 172.26.0.2>
DocumentRoot /www/servidor2
ServerName www.servidor2.com
ServerAlias servidor2.com
</VirtualHost>

<VirtualHost 10.33.0.2>
DocumentRoot /www/guifi
ServerName server.guifi.net
</VirtualHost>

Amb aquesta configuració establim que a les crides a la ip 127.0.0.1 (equivalent a localhost, accés des del propi servidor) i 172.26.0.2 (inet) es mirarà el dns que s'ha introduit. El NameVirtualServer el que fa definir per la ip que s'indiqui que serà un servidor virtual basat en dns, és a dir, que a la mateixa ip hi haurà més d'un servidor. En canvi si algú accedeix mitjançant la ip 10.33.0.2, xarxa wifi, aquest servidor no mirarà amb quina url s'hi està accedint, ens hi portarà sense mirar-la. Com que no hi ha més d'un servidor en aquella ip no fa falta mirar la dns.

També podem optar per fer us de wildcards * obtenint una configuració d'aquest estil:

NameVirtualServer *
<VirtualHost *>
DocumentRoot /www/servidor1
ServerName www.servidor1.com
ServerAlias servidor1.com
</VirtualHost>
<VirtualHost *>
DocumentRoot /www/servidor2
ServerName www.servidor2.com
ServerAlias servidor2.com
</VirtualHost>
<VirtualHost *>
DocumentRoot /www/guifi
ServerName server.guifi.net
</VirtualHost>

En aquest cas accedim des de la ip que accedim ens basarem en la dns facilitada.

Hi ha més possibilitats, fins i tot es poden configurar diversos servidors virtuals en funció del port a que s'accedeixi.

Dintre de cada VirtualHost es poden definir els Directory i Location que es vulguin fer servir en cada cas.

D'altra banda cal tenir en compte que el primer VirtualHost definit fa les funcions de _default_ si aquest no és definit, servidor per defecte que atendrà totes les crides que no sàpiga a quin servidor van dirigides. Si es vol aquest servidor també es pot especificar definint un nou <VirtualHost _default_>.

Hi ha però moltes més opcions de configuració, però crec que aquí queden cobertes les més bàsiques, i que he provat.

pàgina generada en: 0.441 segons.