Virtual Host

Apache ha la possibilità di usare i virtual host, per far lavorare diversi server per diversi indirizzi IP sulla stessa macchina. Se siete interessati ad utilizzare i virtual host, potete trovare la documentazione sulla vostra macchina oppure online al sito Web http://www.apache.org/docs/vhosts/.

NotaNota Bene
 

Non potete utilizzare i virtual host name-based con il Red Hat Linux Apache/SSL Server, perché l'handshake SSL (quando il browser riceve il certificato dal secure Web server) si attiva prima della richiesta HTTP che identifica l'appropriato virtual host name-based. Se volete utilizzare i virtual host name-based, non dovrete utilizzare un server Web "sicuro".

I virtual host sono configurati nel file httpd.conf come descritto nella la sezione Direttive di configurazione nel file httpd.conf. Prima di modificare la configurazione della sezione virtual host leggete la documentazione.

Virtual Host del Red Hat Linux Apache/SSL Server

La configurazione di default del vostro Red Hat Linux Apache/SSL Server ha un server sicuro ed uno non sicuro. Entrambi i server utilizzano lo stesso indirizzo IP e l'host name, ma sono in ascolto su porte differenti, ed il secure server è un virtual host. Questa configurazione vi permette di abilitare documenti da un secure e da un non-secure server in modo più efficiente possibile. Come sapete le trasmissioni di tipo secure HTTP impiegano più tempo, perché c'è un traffico maggiore. Quindi utilizzando il vostro secure server per un traffico non-secure Web non è una buona idea.

Le direttive di configurazione per il vostro secure server sono contenute nei tag del virtual host nel file httpd.conf. Se avete bisogno di cambiare la configurazione del vostro secure server avrete bisogno di modificare il file httpd.conf. Se volete abilitare determinate caratteristiche per il vostro secure server, devono essere abilitate nei tab virtual host che definiscono il secure server.

Il non-secure Web server viene configurato come host "non-virtual" nel file httpd.conf. In altre parole le opzioni di configurazione sono al di fuori della sezione virtual host in httpd.conf. Se volete modificare la configurazione del server Web non sicuro, avrete bisogno di cambiare le direttive della configurazione nel file httpd.conf al di fuori dei tag relativi al virtual host.

Per default, sia il secure che il non-secure server Web condividono la stessa DocumentRoot, una direttiva di configurazione specificata in httpd.conf. La DocumentRoot di default è /var/www/html.

Per cambiare la DocumentRoot in modo tale che non venga condivisa dai server secure e non-secure, cambiate una delle direttive DocumentRoot nel file httpd.conf. La DocumentRoot al di fuori dei tag virtual host definisce la DocumentRoot per il vostro Web server non-secure.

Se per qualche ragione volete disabilitare il Web server non-secure sulla vostra macchina potete farlo. Il vostro secure server è in ascolto sulla porta 443, la porta di default per le comunicazioni Web sicure, mentre il vostro server non-secure rimane in ascolto sulla porta 80, la porta di default per le comunicazioni Web non-secure. Per far si che il Web non-secure non accetti le connessioni cercate in httpd.conf, la linea:

Port 80

Canbiate la linea sopracitata in:

Port 443

Quindi commentate la linea Listen 80

Listen 80

inserendo il carattere # come di seguito

#Listen 80

Dopo questi due passi il vostro sistema Red Hat Linux Apache/SSL Server accetterà connessioni sulla porta 443, la porta di default per le comunicazioni secure Web. Quindi il vostro server non accetterà connessioni sulla porta 80. Il server Web non sicuro è effettivamente disabilitato.

Configurare i Virtual Host

Molta gente probabilmente utilizzerà Red Hat Linux Apache/SSL Server con la configurazione di base. Utilizzeranno le possibilità in termini di virtual hosting senza effettuare modifiche nel file httpd.conf.

Per creare un virtual host, dovete modificare le linee relative inserite come esempio nel file httpd.conf, o creare una sezione nuova. Ricordate che il virtual host name-based non funziona con il vostro secure server — dovete usare un virtual host IP address-based se volete abilitare il supporto SSL.

L'esempio del virtual host in httpd.conf:

#<VirtualHost ip.address.of.host.some_domain.com>
#    ServerAdmin webmaster@host.some_domain.com
#    DocumentRoot /www/docs/host.some_domain.com
#    ServerName host.some_domain.com
#    ErrorLog logs/host.some_domain.com-error_log
#    CustomLog logs/host.some_domain.com-access_log common
#</VirtualHost>

Togliete il commento alle linee (rimuovete il carattere # all'inizio di ogni riga). Quindi aggiungete l'informazione corretta per la vostra macchina e/o virtual host.

Nella prima linea cambiate ip.address.of.host.some_domain.com con i dati relativi al vostro indirizzo IP. Cambiate la direttiva ServerName con un DNS name valido che deve essere utilizzato come virtual host. Chiedete al vostro amministratore della rete se non siete a conoscenza di cosa inserire.

Dovete anche togliere il commento alle seguenti entry NameVirtualHost nel file httpd.conf:

#NameVirtualHost 12.34.56.78:80
#NameVirtualHost 12.34.56.78

Togliete il commento alle line e cambiate l'indirizzo IP ( e se necessario il numero di porta) per il virtual host.

Possono anche essere inserite altre direttive nei tag del virtual host, in funzione del tipo di configurazione necessaria.

Se state configurando un virtual host e volete che rimanga in ascolto su una porta che non sia quella di default ( la 80 è la porta di default per le comunicazioni Web non sicure mentre la 443 è la porta per le comunicazioni sicure) dovete configurare per quella porta un virtual host e aggiungere una direttiva Listen corrispondente a quella porta.

Per avere un virtual host funzionante su una particolare porta, aggiungete il numero nella prima linea della configurazione del virtual host. La prima linea assomiglia a:

<VirtualHost ip_address_of_your_server:12331>

Questa linea crea un virtual host in ascolto sulla porta 12331. Sostituite il numero di porta che volete utilizzare al posto di 12331 nell'esempio precedente.

La linea Listen nel file httpd.conf, configura il vostro server per rimanere in ascolto sulla porta 12331:

Listen 12331

Effettuata la modifica fate ripartire il server Web.

Informazioni più dettagliate sulla creazione e configurazione di entrambi i virtual host name-based e address-based viene fornita sul Web al sito http://www.apache.org/docs/vhosts/index.html. Consultate la documentazione sul virtual host dell'Apache Group per maggiori informazioni.