Home Mappa Indice Ricerca News Archivi Link A proposito di LF
[Barra superiore]
[Barra inferiore]
[Photo of the Author]
di Atif Ghaffar

Notizie sull'autore:

Vivo e lavoro in Svizzera come webmaster e amministratore unix. Le mie passioni includono, Linux, UNIX, Perl, Apache e il software GPL. Possono essere trovate più informazioni sul mio conto sulla mia homepage.

Contenuto:

“Riciclaggio” degli indirizzi IP con Apache

[Illustration]

Sommario:

Questo articolo mostra come gestire più webservers virtuali usando lo stesso indirizzo IP con Apache su Unix/Linux. L' articolo presuppone che il lettore abbia una certa conoscenza del funzionamento di Apache, DNS e di UNIX.
Questo articolo si rivolge principalmente agli ISPs, agli amministratori di sistema e a chiunque che si preoccupi di leggere ed imparare :-).



 

Perchè dovremmo “riciclare” gli indirizzi IP?

Riciclare gli indirizzi IP è utile per parecchie ragioni.

  1. Uno potrebbe sempre esaurire gli indirizzi IP a lui disponibili

  2. Uno potrebbe avere soltanto un indirizzo IP (come nel mio caso)

  3. Più tempo per gli amministratori di sistema per aggiungere interfacce al server per usare indirizzi IP multipli.

 

Come riciclare gli indirizzi IP?

Con Apache è semplice servire domini multipli con un solo indirizzo IP.
Per questo articolo useremo un indirizzo IP fittizio, come 192.168.1.1 e hometranet.home come hostname.
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.

 

Usando i metacaratteri, hostnames dinamici

Qui viene il bello. Il Web server Apache permette di usare i metacaratteri (i wildcards, n.d.t.) negli hostnames.
Quindi potete settare un dominio *.home.hometranet.home e tutte le richieste a user1.home.hometranet.home, user2.home.hometranet.home,
user3.home.hometranet.home, etc saranno accettate.
Esempio:

#host per gli utenti
<VirtualHost 192.168.1.1:80>
        ServerName      home.hometranet.home
        ServerAlias     *.home.hometranet.home
        DocumentRoot    /www/home/html
        TransferLog     /www/home/logs/access_log
        ErrorLog        /www/home/logs/error_log
</VirtualHost>

e una linea nel file di configurazione del DNS

*.home.hometranet.home.  IN      A       192.168.1.1

Nota: Questo trucco non funzionerà se state utilizzando il Microsoft DNS Server. Rifiuta apparentemente di accettare i metacaratteri negli hostnames.
(Ma voi non lo usate vero?, :-))
Io una volta ho scritto un piccolo sistema che permette agli utenti della rete di aggiungere il loro CV (Curriculum Vitae, n.d.t.) nel database ed usando il suddetto trucco, il loro CV era disponibile su http://NomeDell'Utente.cv.developer.ch.

 

Il mio file di configurazione dei virtual hosts

Qui c'è un file di configurazione più esauriente che ho estrapolato dal mio file di configurazione dell'Apache.
Questo è attualmente sul mio server.

Per includere questo file nell'httpd.conf potete usare la direttiva Include nel vostro httpd.conf.
Include "/etc/vhosts.conf"

 

Risorse Addizionali

[ Supporto dell'Apache sui Virtual Host in base al nome ]
http://www.apache.org/docs/vhosts/name-based.html
[ documentazione sull'Apache Virtual Host ]
http://www.apache.org/docs/vhosts/index.html
[ una discussione approfondita sulle corrispondenze del Virtual Host ]
http://www.apache.org/docs/vhosts/details.html


Pagine web mantenute dal Team degli Editori di LinuxFocus
© Atif Ghaffar
LinuxFocus 2000

Clicca qui per segnalare un errore o per mandare un commento a Linuxfocus
Informazioni sulla traduzione:
en -> -- Atif Ghaffar
en -> it Paolo Conti

2000-01-25, generated by lfparser version 1.1