GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare gli host virtuali Apache in Ubuntu 18.04 LTS

Cos'è Apache Virtual Hosts?

Host virtuale termine si riferisce al metodo di esecuzione di più di un sito Web come host1.domain.com, host2.domain.com o www.domain1.com, www.domain2.com ecc., su un unico sistema. Esistono due tipi di hosting virtuale in Apache, ovvero basato su IP hosting virtuale e basato sul nome hosting virtuale. Con l'hosting virtuale basato su IP, puoi ospitare più siti Web o domini sullo stesso sistema, ma ogni sito Web/dominio ha un indirizzo IP diverso. Con l'hosting virtuale basato sul nome, puoi ospitare più siti Web/domini sullo stesso indirizzo IP. L'hosting virtuale può essere utile se desideri ospitare più siti Web e domini da un singolo server fisico o VPS. Spero che tu abbia l'idea di base degli host virtuali Apache. Oggi vedremo come configurare gli host virtuali Apache in Ubuntu 18.04 LTS.

Scarica - eBook gratuito:"Apache HTTP Server Cookbook"

Configura gli host virtuali Apache in Ubuntu 18.04 LTS

L'indirizzo IP della mia casella di prova è 192.168.225.22 e il nome host è ubuntuserver .

Per prima cosa, vedremo come configurare host virtuali basati sui nomi nel server web Apache.

Configura host virtuali basati sul nome

1. Installa il server web Apache 

Assicurati di aver installato il server web Apache. Per installarlo su Ubuntu, esegui:

$ sudo apt-get install apache2

Una volta installato Apache, verifica se funziona o meno navigando nella pagina di prova di Apache nel browser.

Apri il tuo browser web e puntalo a http://IP_Address o http://localhost . Dovresti vedere una pagina come quella di seguito.

Bene! Il server web Apache è attivo e funzionante!!

2. Crea una directory web per ogni host

Creerò due host virtuali, ovvero otechnix1.lan e otechnix2.lan .

Creiamo una directory per il primo host virtuale ostechnix1.lan. Questa directory è necessaria per memorizzare i dati dei nostri host virtuali.

Per farlo, inserisci:

$ sudo mkdir -p /var/www/html/ostechnix1.lan/public_html

Allo stesso modo, crea una directory per il secondo host virtuale ostechnix2.lan come mostrato di seguito.

$ sudo mkdir -p /var/www/html/ostechnix2.lan/public_html

Le due directory precedenti sono di proprietà dell'utente root. Dobbiamo cambiare la proprietà all'utente normale.

Per farlo, esegui:

$ sudo chown -R $USER:$USER /var/www/html/ostechnix1.lan/public_html
$ sudo chown -R $USER:$USER /var/www/html/ostechnix2.lan/public_html

Qui, $USER fa riferimento all'utente attualmente connesso.

Quindi, imposta i permessi di lettura sulla directory principale di Apache, ad esempio /var/www/html/ usando il comando:

$ sudo chmod -R 755 /var/www/html/

Lo facciamo perché abbiamo già creato una directory separata per ogni host virtuale per la memorizzazione dei propri dati. Quindi abbiamo reso la directory radice di Apache in sola lettura per tutti gli utenti tranne l'utente root.

Abbiamo creato le directory richieste per la memorizzazione dei dati di ciascun host virtuale, impostando le autorizzazioni appropriate. Ora è il momento di creare alcune pagine di esempio che verranno servite da ciascun host virtuale.

3. Crea pagine web dimostrative per ogni host

Creiamo una pagina di esempio per il sito ostechnix1.lan. Per farlo, esegui:

$ sudo vi /var/www/html/ostechnix1.lan/public_html/index.html

Aggiungi le seguenti righe:

<html>
 <head>
 <title>www.ostechnix.lan</title>
 </head>
 <body>
 <h1>Hello, This is a test page for ostechnix1.lan website</h1>
 </body>
</html>

Salva e chiudi il file.

Allo stesso modo, crea una pagina di esempio per il sito ostechnix2.lan:

$ sudo vi /var/www/html/ostechnix2.lan/public_html/index.html

Aggiungi le seguenti righe:

<html>
 <head>
 <title>www.ostechnix.lan</title>
 </head>
 <body>
 <h1>Hello, This is a test page for ostechnix2.lan website</h1>
 </body>
</html>

Salva e chiudi il file.

4. Crea un file di configurazione per ogni host

Successivamente, dobbiamo creare file di configurazione per ogni host virtuale. Per prima cosa, facciamolo per il sito ostechnix1.lan.

Copia il file dell'host virtuale predefinito chiamato 000-default.conf contenuti nei nuovi file host virtuali come di seguito.

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ostechnix1.lan.conf
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ostechnix2.lan.conf

Tieni presente che devi salvare tutti i file di configurazione con .conf estensione alla fine, altrimenti non funzionerà.

Ora modifica i file di configurazione in modo che corrispondano ai nostri host virtuali.

Modifica otechnix.lan1.conf file:

$ sudo vi /etc/apache2/sites-available/ostechnix1.lan.conf

Modifica/modifica i valori ServerAdmin, ServerName, ServerAlias ​​e DocumentRoot corrispondono all'host virtuale.

<VirtualHost *:80>
 # The ServerName directive sets the request scheme, hostname and port that
 # the server uses to identify itself. This is used when creating
 # redirection URLs. In the context of virtual hosts, the ServerName
 # specifies what hostname must appear in the request's Host: header to
 # match this virtual host. For the default virtual host (this file) this
 # value is not decisive as it is used as a last resort host regardless.
 # However, you must set it for any further virtual host explicitly.
 #ServerName www.example.com

   ServerAdmin [email protected]
   ServerName ostechnix1.lan
   ServerAlias www.ostechnix1.lan
   DocumentRoot /var/www/html/ostechnix1.lan/public_html

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
 # error, crit, alert, emerg.
 # It is also possible to configure the loglevel for particular
 # modules, e.g.
 #LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
 # enabled or disabled at a global level, it is possible to
 # include a line for only one particular virtual host. For example the
 # following line enables the CGI configuration for this host only
 # after it has been globally disabled with "a2disconf".
 #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

Salva e chiudi il file.

Quindi, modifica otechnix2.lan.conf file:

$ sudo vi /etc/apache2/sites-available/ostechnix2.lan.conf

Apporta le modifiche necessarie.

<VirtualHost *:80>
 # The ServerName directive sets the request scheme, hostname and port that
 # the server uses to identify itself. This is used when creating
 # redirection URLs. In the context of virtual hosts, the ServerName
 # specifies what hostname must appear in the request's Host: header to
 # match this virtual host. For the default virtual host (this file) this
 # value is not decisive as it is used as a last resort host regardless.
 # However, you must set it for any further virtual host explicitly.
 #ServerName www.example.com

    ServerAdmin [email protected]
    ServerName ostechnix2.lan
    ServerAlias www.ostechnix2.lan
    DocumentRoot /var/www/html/ostechnix2.lan/public_html

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
 # error, crit, alert, emerg.
 # It is also possible to configure the loglevel for particular
 # modules, e.g.
 #LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
 # enabled or disabled at a global level, it is possible to
 # include a line for only one particular virtual host. For example the
 # following line enables the CGI configuration for this host only
 # after it has been globally disabled with "a2disconf".
 #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

Salva/chiudi il file.

5. Abilita i file di configurazione dell'host virtuale

Dopo aver apportato le modifiche necessarie, disabilitare il file di configurazione dell'host virtuale predefinito, ovvero 000.default.conf e abilita tutti i file di configurazione dell'host virtuale appena creati come mostrato di seguito.

$ sudo a2dissite 000-default.conf
$ sudo a2ensite ostechnix1.lan.conf
$ sudo a2ensite ostechnix2.lan.conf

Riavvia il server web di Apache per rendere effettive le modifiche.

$ sudo systemctl restart apache2

Questo è tutto. Abbiamo configurato correttamente host virtuali in Apache. Andiamo avanti e controlliamo se funzionano o meno.

6. Testa gli host virtuali

Apri il file /etc/hosts in qualsiasi editor:

$ sudo vi /etc/hosts

Aggiungi tutti i tuoi siti Web/domini virtuali uno per uno come di seguito.

[...]
192.168.225.22   ostechnix1.lan
192.168.225.22   ostechnix2.lan
[...]

Si noti che se si desidera accedere agli host virtuali da qualsiasi sistema remoto, è necessario aggiungere le righe precedenti nel file /etc/hosts di ciascun sistema remoto.

Salva e chiudi il file.

Apri il tuo browser web e puntalo a http://otechnix1.lan o http://otechnix2.lan .

Pagina di prova ostechnix1.lan:

Pagina di prova di otechnix2.lan:

Congratulazioni! Ora puoi accedere a tutti i tuoi siti web. D'ora in poi, puoi caricare i dati e servirli da diversi siti web.

Come hai notato, abbiamo utilizzato lo stesso indirizzo IP (cioè 192.168.225.22) per ospitare due diversi siti web (http://otechnix1.lan e http://otechnix2.lan). Questo è ciò che chiamiamo hosting virtuale basato sul nome. Spero questo sia di aiuto. Ti mostrerò come configurare l'hosting virtuale basato su IP nella prossima guida. Fino ad allora, restate sintonizzati!


Ubuntu
  1. Come configurare gli host virtuali Apache su Ubuntu 18.04

  2. Come configurare gli host virtuali Apache su Ubuntu 20.04

  3. Come installare Apache Cordova su Ubuntu 18.04 LTS

  4. Configurare gli host virtuali Apache su Ubuntu 18.04 - Processo passo dopo passo?

  5. Come configurare l'host virtuale apache su ubuntu

Come configurare l'indirizzo IP in Ubuntu 18.04 LTS

Come configurare gli host virtuali Apache su Rocky Linux

Come configurare l'host virtuale Apache su Ubuntu 20.04 LTS

Come installare il server Apache e configurare host virtuali su Ubuntu 22.04

Come configurare gli host virtuali Apache su Ubuntu 18.04

Come configurare gli host virtuali Apache su Ubuntu 20.04