![[Top bar]](../../common/images/Topbar-es.gif)
  ![[Bottom bar]](../../common/images/Bottombar-es.gif) 
Reciclando Direcciones IP con Apache
 ![[Illustration]](../../common/images/illustration129.gif)
Resumen:
Este artículo demuestra cómo servir múltiples servidores web utilizando la misma 
dirección ip con Apache bajo Unix/Linux.
El artículo asume que el lector tiene conocimientos de Apache, de DNS y de Unix.
La audiencia objetivo de este artículo son los ISP, administradores de sistemas o cualquiera que 
quiera leerlo y aprender.
 
Por qué deberíamos reciclar direcciones IP ?
El reciclado de las direcciones ip es útil por diversos motivos.
- nos podemos quedar fácilmente sin direcciones ip
- puede ser que tan solo tengamos una direccion ip (como puede ser mi caso)
- los administradores de sistemas pierden mucho tiempo añadiendo interfaces al servidor para utilizar múltiples direcciones ip.
Cómo reciclar las direcciones ip?
Utilizando Apache, resulta muy simple servir múltiples dominios con una sola dirección ip.
A lo largo de este artículo asumiremos que la dirección ip es la 192.168.1.1 y que el nombre del host
es hometranet.home.
Simplemente, añadimos una línea como esta a nuestro fichero httpd.conf
NameVirtualHost 192.168.1.1:80
A continuación añadimos tres servidores virtuales utilizando la misma dirección ip
#Host para ficheros unix
	ServerName	unix.hometranet.home
	DocumentRoot	/www/unix/html
	ScriptAlias	/cgi-bin/ /www/unix/cgi-bin/
	TransferLog	/www/unix/logs/access_log
	ErrorLog	/www/unix/logs/error_log
#Host para cosas de perl
	ServerName	perl.hometranet.home
	DocumentRoot	/www/perl/html
	ScriptAlias	/cgi-bin/ /www/perl/cgi-bin/
	TransferLog	/www/perl/logs/access_log
	ErrorLog	/www/perl/logs/error_log
#Host para cosas chulas de Apache
	ServerName	apache.hometranet.home
	DocumentRoot	/www/apache/html
	ScriptAlias	/cgi-bin/ /www/apache/cgi-bin/
	TransferLog	/www/apache/logs/access_log
	ErrorLog	/www/apache/logs/error_log
Asi que, utilizando una sola dirección hemos configurado tres servidores virtuales diferentes.
A continuación añadimos CNAMES o Registros A para esos nombres en el fichero de zona 
de nuestro servidor de nombres
y no nos olvidamos de incrementar el n&uacte;mero de serie :)
por ejemplo: en mi /var/named/hometranet.home.fwd, añadiría
perl.hometranet.home.	IN	A	192.168.1.1
apache.hometranet.home.	IN	A	192.168.1.1
unix.hometranet.home.	IN	A	192.168.1.1
Nota importante:
si llamamos a este host con otro nombre diferente al que damos en el ficheros de configuraci&ocute;n de los virtuales,
será el primer host virtual quien responderá.
Con Apache 1.3.x el &uacte;ltimo debería haber respondido.
Por ejemplo: si este host se llama madmag, si llamamos a http://madmag.hometranet.home 
tendremos la misma respuesta que si llamamos a unix.hometranet.home.
 
Usando wildcards, nombres de host dinámicos (dynamic hostnames)
Esta es la parte divertida. Apache permite utilizar wildcards en los nombres de los hosts.
Esto quiere decir que podemos configurar un dominio *.home.hometranet.home y todas las peticiones a los servidores
user1.home.hometranet.home, user2.home.hometranet.home, user3.home.hometranet.home,etc
responderán.
Ejemplo:
#host para usuarios
	ServerName	home.hometranet.home
	ServerAlias     *.home.hometranet.home
        DocumentRoot	/www/home/html
	TransferLog	/www/home/logs/access_log
	ErrorLog	/www/home/logs/error_log
y una entrada en el fichero de nombres de zona.
*.home.hometranet.home.  IN      A       192.168.1.1
Nota: este truco no funciona si utilizamos Microsoft DNS Server. Aparentemente, no deja usar wildcards en los nombres de host.
(Pero no lo estás usando, verdad??)
Una vez escribí un pequeño sistema que permitía que los usuarios de una red añadieran su
CV en una base de datos y, usando el truco anterior, sus CVs estaban disponibles en las direcciones
http://theirUserName.cv.developer.ch.
 
Aquí está un fichero un poco más 
exhaustivo que he separado de mi fichero httpd.conf principal.
Este es el que tengo actualmente en mi servidor.
PAra incluir este fichero en el httpd.conf principal puedes usar la directiva Include en el httpd.conf.
Include "/etc/vhosts.conf"
 
Rescursos Adicionales
- 
	[Apache name-based Virtual Host Support]
	
- 
		http://www.apache.org/docs/vhosts/name-based.html
- 
	[Apache Virtual Host documentation]
	
- 
		http://www.apache.org/docs/vhosts/index.html
	
- [An In-Depth Discussion of Virtual Host Matching]
	
- 
		http://www.apache.org/docs/vhosts/details.html
1999-11-02, generated by lfparser version 0.6