L'hosting virtuale viene utilizzato per ospitare più siti Web su un unico server Web. Il server web potrebbe essere qualcosa di server web HTTP Apache , Microsoft IIS , Lighttpd , openLiteSpeed , ecc. Questa guida ti mostrerà come configurare gli host virtuali Apache su Debian 9 / Ubuntu 16.04 /LinuxMint 18 .
Tipi di hosting virtuale
Esistono due tipi di hosting virtuale nel server Web Apache,
1. Hosting virtuale basato sul nome
2. Hosting virtuale basato su IP
Con l'hosting virtuale basato sul nome, possiamo configurare più siti Web su un unico indirizzo IP, mentre in base a IP; possiamo configurare un solo sito web su un unico indirizzo IP.
Ipotesi
Per una demo, ospiteremo due siti Web denominati "www.itzgeek1.local e “www.itzgeek2.local ” su un unico server web.
Nome host del server:server.itzgeek.local
Indirizzo IP:192.168.12.3
Installa il server Web Apache
Prima di installare Apache, aggiorna l'indice del repository.
sudo apt-get update
Installa il server Web Apache utilizzando il comando seguente.
sudo apt-get install apache2
Una volta installato, il sistema avvierà automaticamente il servizio Apache.
Per testare la tua installazione, apri un browser web e punta all'URL.
http://localhostO
http://tuo.ip.add.dress
Otterresti la pagina predefinita simile a quella di seguito. L'immagine sotto mostra la pagina predefinita di Apache2 su Debian 9.
Configura host virtuali Apache
Crea directory pubbliche
Ora creeremo una directory per contenere i nostri documenti web, ovvero i file .html. Utilizzare il comando seguente per creare una directory per ciascun sito Web, "www.itzgeek1.local " e "www.itzgeek2.local “.
sudo mkdir -p /var/www/html/www.itzgeek1.local sudo mkdir -p /var/www/html/www.itzgeek2.local
Crea pagina demo per host virtuali
Ora inseriremo un file index.html in entrambe le directory per verificare se l'hosting virtuale basato sul nome funziona o meno.
Crea un index.html per “www.itzgeek1.local ” host virtuale.
sudo nano /var/www/html/www.itzgeek1.local/index.html
Inserisci il contenuto di seguito nel file.
<html> <head> <title>www.itzgeek1.local</title> </head> <body> <h1>Welcome To www.itzgeek1.local website</h1> </body> </html>
Crea un index.html per “www.itzgeek2.local ” host virtuale.
sudo nano /var/www/html/www.itzgeek2.local/index.html
Inserisci il contenuto di seguito nel file.
<html> <head> <title>www.itzgeek2.local</title> </head> <body> <h1>Welcome To wwww.itzgeek2.local website</h1> </body> </html>
Impostazione della proprietà e delle autorizzazioni della directory
Per impostazione predefinita, il servizio Apache viene eseguito come utente www-data. Ora, entrambe le directory virtuali che abbiamo creato in precedenza sono di proprietà di root e dobbiamo cambiare la proprietà in www-data in modo che quel server Apache possa scrivere e leggere dati al suo interno.
sudo chown -R www-data:www-data /var/www/html
Inoltre, puoi rendere leggibili le directory virtuali nel mondo.
sudo chmod 755 /var/www/html/
Ora siamo pronti per creare un file di configurazione per host virtuali.
Crea file host virtuale
Ora crea un file host virtuale “www.itzgeek1.local.conf per l'host virtuale “www.itzgeek1.local. Il file di configurazione dell'host virtuale dovrebbe terminare con un'estensione .conf.
sudo nano /etc/apache2/sites-available/www.itzgeek1.local.conf
Aggiungi il seguente contenuto al file.
<VirtualHost *:80> ServerAdmin [email protected] ServerName www.itzgeek1.local DocumentRoot /var/www/html/www.itzgeek1.local ErrorLog ${APACHE_LOG_DIR}/www.itzgeek1.local_error.log CustomLog ${APACHE_LOG_DIR}/www.itzgeek1.local_ccess.log combined </VirtualHost>
Allo stesso modo, crea un secondo file host virtuale.
sudo nano /etc/apache2/sites-available/www.itzgeek2.local.conf
Inserisci il seguente contenuto nel file.
<VirtualHost *:80> ServerAdmin [email protected] ServerName www.itzgeek2.local DocumentRoot /var/www/html/www.itzgeek2.local ErrorLog ${APACHE_LOG_DIR}/www.itzgeek2.local_error.log CustomLog ${APACHE_LOG_DIR}/www.itzgeek2.local_ccess.log combined </VirtualHost>
Dopo aver creato i file dell'host virtuale, abilita i nuovi host virtuali che abbiamo appena creato creando un collegamento simbolico a siti abilitati directory.
sudo ln -s /etc/apache2/sites-available/www.itzgeek1.local.conf /etc/apache2/sites-enabled/ sudo ln -s /etc/apache2/sites-available/www.itzgeek2.local.conf /etc/apache2/sites-enabled/
Riavvia il servizio apache.
sudo service apache2 restart
Verifica degli host virtuali
Se non disponi di un server DNS nel tuo ambiente, modifica "/etc/hosts ” file.
sudo nano /etc/hosts
Aggiungi sotto le voci.
192.168.12.3 www.itzgeek1.local 192.168.12.3 www.itzgeek2.local
Se utilizzi macchine basate su Windows, modifica "host ” in “C:\Windows\System32\drivers\ecc ” directory.
Apri il browser e punta all'URL http://www.itzgeek1.local o http://www.itzgeek2.local . Dovresti vedere le pagine demo che abbiamo creato in precedenza.
Pagina demo www.itzgeek1.local:
www.itzgeek2.local pagina demo:
Questo è tutto.