Fig 1: VirtualHost basato su IP Apache.
Host virtuale basato sul nome: In VirtualHost basato sul nome, un server Apache ha un singolo indirizzo IP e più nomi di dominio configurati per ciascun sito web. In un server DNS, a ciascuno di questi nomi di dominio viene assegnato l'indirizzo IP del server Apache. A seconda del nome di dominio utilizzato dal client, il server restituisce diversi siti web.
Fig 2: VirtualHost basato sul nome Apache.
In questo articolo, ti mostrerò come configurare VirtualHost basato sul nome di Apache. Userò Ubuntu 18.04 LTS per la dimostrazione. Ma dovrebbe funzionare su qualsiasi distribuzione Linux moderna con cambiamenti minimi o nulli. Quindi iniziamo.
Installazione del server Web Apache 2:
Il server web Apache 2 è disponibile nel repository ufficiale dei pacchetti di Ubuntu 18.04 LTS. Quindi, puoi installarlo facilmente con il gestore di pacchetti APT.
Innanzitutto, aggiorna la cache del repository del pacchetto APT con il seguente comando:
$ sudo apt update
Ora, esegui il seguente comando per installare il server Web Apache 2:
$ sudo apt install apache2
Ora premi sì e poi premere
Il server web Apache 2 dovrebbe essere installato.
Configurazione del DNS:
Ora devi configurare il server DNS per mappare i nomi di dominio che desideri utilizzare per VirtualHost all'indirizzo IP del tuo server Apache.
Puoi trovare l'indirizzo IP del tuo server Apache con il seguente comando:
$ ip a | egrep "inet"Come puoi vedere, l'indirizzo IP nel mio caso è 192.168.21.166. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo d'ora in poi.
Se vuoi imparare a configurare Apache VirtualHost localmente, puoi usare il /etc/host file per DNS locale/risoluzione dei nomi.
Per configurare la risoluzione DNS locale, apri il /etc/host file con nano come segue:
$ sudo nano /etc/hosts
Ora aggiungi al file la riga come contrassegnata nello screenshot qui sotto. Quindi premere
Ora, la risoluzione dei nomi locali dovrebbe funzionare.
Strutture di directory:
Voglio mantenere tutti i dati del sito Web del mio Apache VirtualHost in una directory specifica /www. Qui, voglio creare una directory per ogni utente. Ogni utente avrà il suo public_html/ e log/ anche la directory.
Ad esempio, per 3 utenti bob (esempio1.it), alice (esempio2.it), linda (esempio3.it), la struttura della directory è la seguente:
/www- Esempio 1.com/
- www/
- public_html/
- indice.html
- log/
- esempio2.com/
- www/
- public_html/
- indice.html
- log/
- esempio3.com/
- www/
- public_html/
- indice.html
- log/
Un modo semplice per farlo è creare un modello o una directory scheletro e mettere lì la struttura della directory. Quindi crea ogni utente usando questa directory scheletro.
Per prima cosa, copia il contenuto della directory scheletro predefinita /etc/skel in un'altra directory /etc/skel-www come segue:
$ sudo cp -rv /etc/skel /etc/skel-www
Ora, vai alla nuova directory scheletro come segue:
$ cd /etc/skel-www
Quindi creare la struttura di directory desiderata all'interno della directory scheletro come segue:
$ sudo mkdir -p www/public_html,logs
Puoi anche creare un'impostazione predefinita indice.html file nel public_html/ directory se vuoi.
$ eco "Funziona
" | sudo tee www/public_html/index.html
Ora, crea il /www directory con il seguente comando:
$ sudo mkdir /www
Creazione di utenti:
Ora puoi creare l'utente bob per www.Esempio 1.com come segue:
$ sudo useradd --create-home --home-dir /www/example1.com --shell/bin/bash --gid www-data --skel /etc/skel-www bob
Allo stesso modo, crea l'utente alice per www.esempio2.com come segue:
$ sudo useradd --create-home --home-dir /www/example2.com --shell /bin/bash--gid www-data --skel /etc/skel-www alice
Di nuovo, crea l'utente linda per www.esempio3.com come segue:
$ sudo useradd --create-home --home-dir /www/example3.com --shell /bin/bash--gid www-data --skel /etc/skel-www linda
Qui, ho assegnato il gruppo principale di ciascun utente a www-dati. Per impostazione predefinita, il server Apache viene eseguito come questo gruppo. Se non l'avessi fatto, il server Apache non sarà in grado di accedere ai file nel public_html/ directory e creare file di registro nel in log/ directory.
Configurazione di Apache VirtualHost:
Ora sei pronto per configurare Apache VirtualHost per 3 utenti bob (www.Esempio 1.it), alice (www.esempio2.com) e linda (www.esempio3.it).
La directory di configurazione del sito Apache predefinita su Ubuntu è /etc/apache2/sites-available.
Ora vai alla directory /etc/apache2/siti-disponibili/ come segue.
$ cd /etc/apache2/sites-available/
Innanzitutto, crea un nuovo file di configurazione per bob www.Esempio 1.come.conf come segue:
$ sudo nano www.Esempio 1.come.conf
Dovrebbe essere aperto un editor di testo.
Ora, digita le seguenti righe.
ServerName example1.comeServerAlias www.Esempio 1.come
DocumentRoot "/www/example1.com/www/public_html"
Opzioni -SeguiSymLinks +MultiViews +Indici
ConsentiIgnora tutto
Richiedi tutto concesso
ErrorLog "/www/example1.com/www/logs/error.registro"
CustomLog "/www/example1.com/www/logs/access.log" combinato
NOTA: modificare i testi in grassetto in base alle proprie esigenze.
Infine, il file di configurazione www.esempio.come.conf dovrebbe apparire come segue. stampa
per copiare semplicemente il file di configurazione per bob (www.Esempio 1.come.conf) e apportare le piccole modifiche necessarie.
Copia il file di configurazione di bob per alice e linda con i seguenti comandi:
$ sudo cp -v www.Esempio 1.come.conf www.esempio2.come.conf$ sudo cp -v www.Esempio 1.come.conf www.esempio3.come.conf
Ora, modifica il file di configurazione di alice come segue:
$ sudo nano www.esempio2.come.conf
Ora cambia tutte le occorrenze di Esempio 1 per esempio2. Quindi salva il file.
Fai la stessa cosa per linda.
$ sudo nano www.esempio3.come.conf
Modifica tutte le occorrenze di Esempio 1 per esempio3 e salva il file.
Abilitazione delle configurazioni VirtualHost:
Ora disabilita la configurazione del sito Web predefinito di Apache come segue:
$ sudo a2dissite 000-default.conf
Ora, abilita le configurazioni di VirtualHost www.Esempio 1.come.conf, www.esempio2.come.conf, www.esempio3.come.conf come segue:
$ sudo a2ensite www.Esempio 1.come.conf www.esempio2.come.conf www.esempio3.come.conf
Infine, riavvia il servizio Apache come segue:
$ sudo systemctl riavvia apache2
Test di host virtuali:
Ora prova ad accedere ai siti www.Esempio 1.com, www.esempio2.com, www.esempio3.come
Come puoi vedere, tutti questi siti web funzionano come previsto.
NOTA: Ho cambiato la pagina predefinita indice.html per ogni sito in modo che sia leggermente diverso per ogni sito Web a scopo di test. Altrimenti, non sarai in grado di dire se la configurazione di VirtualHost funziona o meno.
Quindi, è così che configuri Apache VirtualHost basato sul nome su Ubuntu 18.04 LTS. Grazie per aver letto questo articolo.