Ti copio e incollo uno spezzone di una slide che ho fatto per un corso:
Aggiungete semplicemente una riga come questa al vostro httpd.conf
NameVirtualHost 192.168.1.1:80
Dopo aggiungeremo tre server virtuali usando lo stesso indirizzo IP
# Host per i files UNIX
<VirtualHost 192.168.1.1:80>
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
</VirtualHost>
#Host per il materiale sul perl
<VirtualHost 192.168.1.1:80>
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
</VirtualHost>
#Host con materiale particolare sull'Apache
<VirtualHost 192.168.1.1:80>
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
</VirtualHost>
Quindi con un singolo IP dell'Apache abbiamo gestito facilmente 3 virtualhosts differenti.
Non rimane che aggiungere un CNAMES o un record per questi nomi nel vostro file
di configurazione del DNS, e non dimenticate di incrementare il numero di serie

Per esempio: nel mio /var/named/hometranet.home.fwd, aggiungerei
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
Da notare: Se chiamate questo host con qualunque altro nome oltre quelli dati nell'httpd.conf, risponderā il primo host virtuale.
Prima dell'Apache 1.3.x avrebbe risposto l'ultimo.
Per esempio: Se questo host fosse chiamato madmag, chiamando
http://madmag.hometranet.home sarebbe come invocare unix.hometranet.home.