Fig 1: Virtualhost basato su Apache IP.
Virtualhost basato sul nome: In VirtualHost basato sui nomi, 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 Apache. Userò Ubuntu 18.04 LTS per la dimostrazione. Ma dovrebbe funzionare su qualsiasi moderna distribuzione Linux con poca o nessun cambiamento. Quindi iniziamo.
Installazione di Apache 2 Web Server:
Apache 2 Web Server è disponibile nel repository di pacchetti ufficiali di Ubuntu 18.04 LTS. Quindi, puoi installarlo facilmente con il gestore dei pacchetti APT.
Innanzitutto, aggiorna la cache del repository del pacchetto APT con il seguente comando:
$ sudo apt update
Ora, eseguire il seguente comando per installare Apache 2 Web Server:
$ sudo apt install apache2
Ora, premere y e poi premere continuare.
Apache 2 Web Server deve essere installato.
Configurazione di DNS:
Ora, devi configurare il server DNS per mappare i nomi di dominio che si desidera 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 da ora in poi.
Se si desidera imparare a configurare Apache VirtualHost a livello locale, puoi usare il /etc/host File per la risoluzione DNS/nome locale.
Per configurare la risoluzione DNS locale, aprire il /etc/host file con nano come segue:
$ sudo nano /etc /host
Ora, aggiungi la riga contrassegnata nello screenshot di seguito al file. Quindi premere + X seguito da y E Per salvare il file.
Ora, la risoluzione del nome locale dovrebbe funzionare.
Strutture di directory:
Voglio conservare 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 proprio public_html/ E registri/ anche directory.
Ad esempio, per 3 utenti Bob (Esempio1.com), Alice (Esempio2.com), Linda (Esempio3.com), La struttura della directory è la seguente:
/wwwUn modo semplice per farlo è creare una directory modello o scheletro e mettere lì la struttura della directory. Quindi crea ogni utenti utilizzando questa directory scheletro.
Innanzitutto, copia il contenuto della directory scheletro predefinita /ecc/skel a 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 crea la struttura della directory desiderata all'interno della directory scheletro come segue:
$ sudo mkdir -p www/public_html, logs
Puoi anche creare un valore predefinito indice.html file in public_html/ directory se vuoi.
$ eco "Funziona
"| sudo tee www/public_html/indice.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 /esempio1.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 /esempio2.com --shell /bin /bash
--GID WWW-DATA--SKEL /ETC /SKEL-WWW Alice
Ancora una volta, crea l'utente Linda per www.Esempio3.com come segue:
$ sudo useradd-Create-home-home-dir /www /esempio3.com --shell /bin /bash
--GID WWW-DATA--SKEL /ETC /SKEL-WWW Linda
Qui, ho assegnato il gruppo primario di ciascun utente a www-data. Per impostazione predefinita, Apache Server esegue come questo gruppo. Se non l'avessi fatto, Apache Server non sarà in grado di accedere ai file in public_html/ directory e creare file di registro in registri/ directory.
Configurazione di Apache VirtualHost:
Ora sei pronto a configurare Apache VirtualHost per 3 utenti Bob (www.Esempio 1.com), Alice (www.Esempio2.com) e Linda (www.Esempio3.com).
La directory di configurazione del sito Apache predefinita su Ubuntu è /etc/apache2/siti-disponibile.
Ora, vai alla directory /etc/apache2/siti-disponibile/ come segue.
$ cd/etc/apache2/siti-disponibile/
Innanzitutto, crea un nuovo file di configurazione per Bob www.Esempio 1.com.conf come segue:
$ sudo nano www.Esempio 1.com.conf
Dovrebbe essere aperto un editor di testo.
Ora, digita le seguenti righe.
ServerName Esempio1.com
Serveralias www.Esempio 1.com
DocumentRoot "/www/esempio1.com/www/public_html "
Opzioni -followsymlinks +multiviews +indici
Consentire tutto
Richiedono tutto concesso
Errorlog "/www/Esempio1.com/www/logs/errore.tronco d'albero"
CustomLog "/www/esempio1.com/www/logs/accesso.registro "combinato
Nota: modifica i testi audaci in base alle tue esigenze.
Infine, il file di configurazione www.esempio.com.conf dovrebbe assomigliare a come segue. Premere + X seguito da y e Per salvare il file di configurazione.
per copiare semplicemente il file di configurazione per Bob (www.Esempio 1.com.conf) e apportare quali piccole modifiche sono richieste.
Copia il file di configurazione di Bob per Alice E Linda Con i seguenti comandi:
$ sudo cp -v www.Esempio 1.com.conf www.Esempio2.com.conf
$ sudo cp -v www.Esempio 1.com.conf www.Esempio3.com.conf
Ora, modifica il file di configurazione di Alice come segue:
$ sudo nano www.Esempio2.com.conf
Ora, cambia tutte le occorrenze di Esempio 1 A Esempio2. Quindi salva il file.
Fare la stessa cosa per Linda.
$ sudo nano www.Esempio3.com.conf
Cambiare tutte le occorrenze di Esempio 1 A Esempio3 e salva il file.
Abilitare le configurazioni VirtualHost:
Ora, disabilita la configurazione del sito Web predefinita Apache come segue:
$ sudo a2dissite 000-default.conf
Ora, abilita le configurazioni VirtualHost www.Esempio 1.com.conf, www.Esempio2.com.conf, www.Esempio3.com.conf come segue:
$ sudo a2ensite www.Esempio 1.com.conf www.Esempio2.com.conf www.Esempio3.com.conf
Infine, riavvia il servizio Apache come segue:
$ sudo systemctl riavvio apache2
Ora, prova ad accedere ai siti Web www.Esempio 1.com, www.Esempio2.com, www.Esempio3.com
Come puoi vedere, tutti questi siti Web funzionano come previsto.
NOTA: Ho cambiato la pagina predefinita indice.html Per ogni siti in modo che sia un po 'diverso per ogni sito Web a scopo di test. Altrimenti, non sarai in grado di dire se la configurazione VirtualHost funziona o no.
Quindi, è così che configura Apache VirtualHost basato sul nome su Ubuntu 18.04 LTS. Grazie per aver letto questo articolo.