Apache Virtual Hosts ti consente di eseguire più di un sito Web su una singola macchina. Con Virtual Host, puoi specificare la radice del documento del sito (la directory contenente i file del sito Web), creare una politica di sicurezza separata per ciascun sito, utilizzare certificati SSL diversi e molto altro.
Questo articolo spiega come configurare gli host virtuali Apache su un server CentOS 8.
Prerequisiti #
Assicurati di aver soddisfatto i seguenti requisiti prima di continuare con questo tutorial:
- Nome di dominio che punta all'IP del tuo server pubblico.
- Apache installato sul tuo sistema CentOS.
- Sei loggato come root o utente con privilegi sudo.
Creazione della struttura della directory #
La radice del documento è la directory in cui sono archiviati e serviti i file del sito Web per un nome di dominio in risposta alle richieste. La radice del documento può essere impostata in qualsiasi posizione desideri.
Utilizzeremo la seguente struttura di directory:
/var/www/
├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
Per ogni dominio che sarà ospitato sul server, creeremo una directory separata all'interno di /var/www
. All'interno della directory del dominio, creeremo un public_html
directory che sarà la directory principale del documento di dominio e memorizzerà i file del sito Web del dominio.
Iniziamo creando la directory principale per il dominio example.com
:
sudo mkdir -p /var/www/example.com/public_html
A scopo di test, crea un index.html
file all'interno della directory principale del documento del dominio:
sudo nano /var/www/example.com/public_html/index.html
Copia e incolla il seguente codice nel file:
/var/www/example.com/public_html/index.html<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>
Per evitare problemi di autorizzazione, cambia la proprietà della directory principale del documento di dominio nell'utente apache
:
sudo chown -R apache: /var/www/example.com
Creazione del file host virtuale #
Ci sono alcuni modi per configurare un host virtuale. È possibile aggiungere tutte le direttive dell'host virtuale in un unico file o creare un nuovo file di configurazione per ciascuna direttiva dell'host virtuale. In genere, dovresti preferire il secondo approccio, che è più gestibile.
Per impostazione predefinita, Apache è configurato per caricare tutti i file di configurazione che terminano con .conf
dal /etc/httpd/conf.d/
directory.
Per creare un host virtuale per un sito Web specifico, apri il tuo editor preferito e crea il seguente file di configurazione di base dell'host virtuale:
/etc/httpd/conf.d/example.com.conf<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
ServerName
:Nome del dominio per il quale verrà utilizzata la configurazione dell'host virtuale. Questo è il tuo nome di dominio.ServerAlias
:Tutti gli altri domini per i quali verrà utilizzata anche la configurazione dell'host virtuale, comewww
sottodominio.DocumentRoot
:la directory da cui Apache serve i file di dominio.Options
:questa direttiva controlla le funzionalità del server per directory.-Indexes
:impedisce gli elenchi di directory.FollowSymLinks
:questa opzione dice al server web di seguire i collegamenti simbolici.
AllowOverride
:Specifica quali direttive dichiarate nel.htaccess
può sovrascrivere le direttive di configurazione.ErrorLog
,CustomLog
:La posizione dei file di registro.
Modifica il file in base alle tue esigenze e salvalo.
Il nome del file di configurazione deve terminare con .conf
. Puoi nominare il file di configurazione come preferisci. La procedura migliore consiste nell'utilizzare il nome di dominio come nome del file di configurazione dell'host virtuale.
Verifica la sintassi del file di configurazione con:
sudo apachectl configtest
Se non ci sono errori, l'output dovrebbe essere simile a questo:
Syntax OK
Per attivare un host virtuale appena creato, riavvia il servizio Apache con:
sudo systemctl restart httpd
Apri http://example.com
per verificare che tutto funzioni come previsto.