Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Apache :: Domini virtuali di Apache :: Indice Apache

Domini virtuali di Apache

Categoria: Apache Inserito il: 12-05-2005 Stampa (6266 click)

Con il nome "domini virtuali", o Virtual Hosts, si identificano tutti gli Hosts che vengono configurati in un server Web in aggiunta all'Host originario. In pratica, con i "domini virtuali" avremo la possibilità di far operare separatamente pił server in una stessa macchina, ognuno con un proprio dominio ("www.primo_server.ext", "www.secondo_server.ext"..).

Esistono due tipologie di Virtual Hosts: quelli che fanno capo a differenti indirizzi IP (IP Based Virtual hosts) e, quelli che vengono distinti sulla base del nome (host-based o non IP virtual hosts). In entrambi i casi, abbiamo la possibilità di far convivere pił siti internet, ognuno con il proprio "www.dominio.ext", su una stessa macchina. Per chi fa "Hosting", cioè coloro che per mestiere vendono porzioni di spazio Web destinate ad ospitare siti internet, la possibilità di creare Virtual Hosts rappresenta un indubbio vantaggio sia a livello operativo che economico.

Se disponiamo di pił indirizzi IP possiamo configurare dei "domini virtuali" IP Based. Dal punto di vista di Apache, questo tipo di configurazione può essere operata in due modi: utilizzare un unico processo http che faccia capo a tutti i domini, oppure, dedicarne uno per ognuno di essi; se disponiamo di una macchina abbastanza potente in termini di risorse, la seconda opzione è certamente preferibile, tutto dipende dal numero di domini che desideriamo siano presenti nel nostro computer Server.

Se scegliamo di concedere ad ogni dominio un proprio httpd, dovremo modificare il file http.conf intervenendo sull'istruzione Listen ("ascolta"); ad essa vanno passati come parametri un indirizzo IP (o un nome di dominio) e il numero della porta che ogni httpd utilizzerà per mettersi in "ascolto" pronto a soddisfare le richieste provenienti dai client. Un esempio potrebbe essere questo:

Listen 111.111.1.1:80
Listen 111.111.1.2:81
oppure
Listen 

www.nome_dominio.ext:80
Listen www.altro_nome_dominio.ext:81
Come avrete avuto modo di notare, ad ogni dominio viene dedicata una porta diversa.

Se invece vogliamo configurare un solo httpd per tutti i "domini virtuali", dovremo indicare in httpd.conf per ogni dominio un container simile a questo:
<VirtualHost 

www.nome_dominio.ext> 

ServerAdmin email@nome_dominio.ext 
DocumentRoot /PATH/nome_cartella
ServerName 

www.nome_dominio.ext
ErrorLog /PATH/error.log
CustomLog /PATH/nome_access_log 
</VirtualHost>
Niente di particolarmente complesso, dall'esempio si comprende facilmente che per costruire il container sono necessari:
  1. La direttiva VirtualHost seguita dal nome del "dominio virtuale" che intendiamo porre in essere.
  2. L'indirizzo e-mail dell'Admin.
  3. Il percorso completo verso la DocumentRoot del nuovo dominio.
  4. Il nome del server (ServerName).
  5. Il percorso in cui si trovano i file di "log" di Error
  6. Il percorso in cui si trovano i "log" sul traffico delle risorse.
Nel caso dei domini host-based, basati sul nome, il discorso è altrettanto semplice. Nel file httpd.conf dovremo indicare innanzitutto l'indirizzo IP come parametro all'istruzione NameVirtualHost, dopo di che costruiremo un container in cui dovremo indicare l'IP e il nome del ServerName:
NameVirtualHost 

111.111.1.1

<VirtualHost 111.111.1.1> 
ServerName www.nome_server.ext 
DocumentRoot /PATH/nome_cartella 


</VirtualHost> 

<VirtualHost 111.111.1.1> 
ServerName www.nome_server.ext 
DocumentRoot 

/PATH/nome_cartella 
</VirtualHost>

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle pił importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Inviare semplici email di testo con PHPMailer
Una volta terminate le opportune operazioni di installazione e configurazione di PHPMailer, saremo pronti ad utilizzare la classe per l'invio... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti