L’hosting virtuale è un metodo per ospitare più siti Web su un unico server. Esistono due tipi di hosting virtuale: hosting virtuale basato sul nome e hosting virtuale basato su IP. L’hosting virtuale basato su IP è una tecnica per applicare diverse direttive in base all’indirizzo IP e alla porta su cui viene ricevuta una richiesta. È possibile assegnare un IP separato per ogni dominio su un singolo server utilizzando l’hosting virtuale basato su IP. Principalmente viene utilizzato per ospitare diversi siti Web su porte o IP diversi.
Qui ospiteremo “www.ipvhost1.com” su IP “192.168.1.227”, “www.ipvhost2.com” su IP “192.168.1.228” e “www.portvhost.com” su IP “192.168.1.228” con la porta 8080.
Requisiti
- Sistema operativo: server Ubuntu 14.04 con Apache installato
- Indirizzo IP 1: 192.168.1.227
- Indirizzo IP 2: 192.168.1.228
- Dominio: www.ipvhost1.com
- Dominio: www.ipvhost2.com
- Dominio: www.portvhost.com
Crea più indirizzi IP su un’unica interfaccia di rete
Per configurare l’hosting virtuale basato su IP, devi avere più di un indirizzo IP assegnato alla tua macchina Linux. L’impostazione di più indirizzi IP su una singola interfaccia di rete è denominata alias IP. L’aliasing IP è molto utile se si dispone di una sola scheda di interfaccia di rete.
Per fare ciò, è necessario modificare il file “/ etc / network / interfaces”.
sudo nano /etc/network/interfaces
Aggiungi le seguenti righe:
auto eth0 iface eth0 inet static address 192.168.1.227 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 auto eth0:1 iface eth0:1 inet static address 192.168.1.228 netmask 255.255.255.0
Salvare e chiudere il file, quindi riavviare il servizio di rete per rendere effettive le modifiche.
sudo /etc/init.d/networking restart sudo ifup eth0:1
Imposta più istanze di Apache
Per impostazione predefinita, Apache è in ascolto sulla porta 80. Per l’hosting virtuale basato su porta, è necessario indicare ad Apache di ascoltare l’IP “192.168.1.227” e “192.168.1.228” sulla porta 80 e l’IP “192.168.1.228” sulla porta 8080.
Per configurare più porte, è necessario modificare “/etc/apache2/ports.conf”.
sudo nano /etc/apache2/ports.conf
Aggiungi la seguente riga:
Listen 192.168.1.227:80 Listen 192.168.1.228:80 Listen 192.168.1.228:8080
Salvare e chiudere il file, quindi riavviare Apache per rendere effettive le modifiche.
sudo /etc/init.d/apache2 restart
Crea directory virtuali
Innanzitutto, è necessario creare una struttura di directory che conterrà le pagine web. Questa directory è nota come DocumentRoot per il dominio.
Creare tre directory per i siti Web “www.ipvhost1.com”, “www.ipvhost2.com” e “www.portvhost.com” nella directory DocumentRoot predefinita di Apache.
sudo mkdir -p /var/www/html/www.ipvhost1.com sudo mkdir -p /var/www/html/www.ipvhost2.com sudo mkdir -p /var/www/html/www.portvhost.com
Crea pagine web di prova per ogni host virtuale
Crea un file “index.html” per ogni sito web che identifichi IP e porta specifici.
Crea un file index.html per l’host virtuale “www.ipvhost1.com”.
sudo nano /var/www/html/www.ipvhost1.com/index.html
Aggiungi il seguente contenuto.
<html> <head> <title>www.ipvhost1.com</title> </head> <body> <h1>The ipvhost1.com ip virtual host is working!</h1> </body> </html>
Salva e chiudi il file quando hai finito.
Creare un file “index.html” per l’host virtuale “www.ipvhost2.com”.
sudo nano /var/www/html/www.ipvhost2.com/index.html
Aggiungi il seguente contenuto.
<html> <head> <title>www.ipvhost2.com</title> </head> <body> <h1>The ipvhost2.com ip virtual host is working!</h1> </body> </html>
Salva e chiudi il file quando hai finito.
Creare un file “index.html” per l’host virtuale “www.portvhost.com”.
sudo nano /var/www/html/www.portvhost.com/index.html
Aggiungi il seguente contenuto.
<html> <head> <title>www.portvhost.com</title> </head> <body> <h1>The portvhost.com port virtual host is working!</h1> </body> </html>
Salva e chiudi il file quando hai finito.
Impostazione della proprietà e delle autorizzazioni
Per impostazione predefinita, il servizio Apache viene eseguito come utente “www-data” in Ubuntu. È necessario modificare la proprietà di queste tre directory virtuali in “www-data” in modo che Apache possa leggere e scrivere dati.
Per fare ciò, esegui:
sudo chown -R www-data:www-data /var/www/html/www.ipvhost1.com sudo chown -R www-data:www-data /var/www/html/www.ipvhost2.com sudo chown -R www-data:www-data /var/www/html/www.portvhost.com
Inoltre, è necessario assicurarsi che la directory radice Web di Apache (/ var / www / html) sia leggibile in modo che tutti possano leggere i file da essa.
sudo chmod -R 755 /var/www/html
Crea file host virtuale
Per impostazione predefinita, Apache viene fornito con un file host virtuale predefinito chiamato “000-default.conf”. Devi prima disabilitare questo file host virtuale.
A tale scopo, eseguire il comando seguente.
sudo a2dissite 000-default.conf
Il passaggio successivo consiste nel creare un file di configurazione dell’host virtuale per ogni sito Web. Il nome di ogni file di configurazione deve terminare con “.conf”.
Creare un file host virtuale per il sito Web “www.ipvhost1.com”.
sudo nano /etc/apache2/sites-available/www.ipvhost1.com.conf
Aggiungi il seguente contenuto.
<VirtualHost 192.168.1.227:80> ServerAdmin admin@ipvhost1.com ServerName www.ipvhost1.com DocumentRoot /var/www/html/www.ipvhost1.com ErrorLog ${APACHE_LOG_DIR}/www.ipvhost1.com_error.log CustomLog ${APACHE_LOG_DIR}/www.ipvhost1.com_access.log combined </VirtualHost>
Salva e chiudi il file.
Creare un file host virtuale per il sito Web “www.ipvhost2.com”.
sudo nano /etc/apache2/sites-available/www.ipvhost2.com.conf
Aggiungi il seguente contenuto.
<VirtualHost 192.168.1.228:80> ServerAdmin admin@ipvhost2.com ServerName www.ipvhost2.com DocumentRoot /var/www/html/www.ipvhost2.com ErrorLog ${APACHE_LOG_DIR}/www.ipvhost2.com_error.log CustomLog ${APACHE_LOG_DIR}/www.ipvhost2.com_access.log combined </VirtualHost>
Salva e chiudi il file.
Creare un file host virtuale per il sito Web “www.portvhost.com”.
sudo nano /etc/apache2/sites-available/www.portvhost.com.conf
Aggiungi il seguente contenuto.
<VirtualHost 192.168.1.228:8080> ServerAdmin admin@portvhost.com ServerName www.portvhost.com DocumentRoot /var/www/html/www.portvhost.com ErrorLog ${APACHE_LOG_DIR}/www.portvhost.com_error.log CustomLog ${APACHE_LOG_DIR}/www.portvhost.com_access.log combined </VirtualHost>
Salva e chiudi il file.
Dopo aver creato i file dell’host virtuale, è necessario abilitare gli host virtuali.
Puoi farlo correndo.
sudo a2ensite www.ipvhost1.com.conf sudo a2ensite www.ipvhost2.com.conf sudo a2ensite www.portvhost.com.conf
Infine, riavvia il servizio Apache.
sudo /etc/init.d/apache2 restart
Test di host virtuali
Ora è il momento di testare l’IP Virtualhost. Su un computer, apri il browser web e vai agli URL “http://192.168.1.227:80” e “http://192.168.1.228:80”. Dovresti vedere pagine demo di esempio per l’hosting virtuale basato su IP che assomigliano a questo:
Allo stesso modo, per testare Port Virtualhost, aprire il browser Web e accedere all’URL “http://192.168.1.228:8080”. Dovresti vedere una pagina demo di esempio per l’hosting virtuale basato su porte simile a questa:
Conclusione
In questo post, ho mostrato la procedura passo passo per creare e abilitare un host virtuale basato su IP e su porta sul server web Apache. Puoi configurare facilmente molti domini sullo stesso server.