GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare la configurazione dell'host virtuale Apache (con esempi)

Utilizzando Apache Virtual Host, puoi eseguire più siti Web sullo stesso server.

Ad esempio, posso eseguire sia thegeekstuff.com che top5freeware.com su un singolo server fisico su cui è in esecuzione un server Web Apache.

Fig:Apache Virtual Host (più siti Web, un Apache)


Esistono due tipi di configurazioni dell'host virtuale Apache:1) Host virtuale basato su IP e 2) Host virtuale basato sul nome. L'host virtuale basato sul nome è consigliato per la maggior parte degli scenari.

Host virtuale basato su IP

In questa configurazione, quando punti due siti Web (con indirizzo IP diverso) al server che esegue Apache, quel server fisico dovrebbe avere due indirizzi IP diversi configurati.

Ciò significa che il server dovrebbe avere due schede ethernet, ciascuna configurata sull'indirizzo IP del sito Web corrispondente che l'host virtuale Apache servirà. Quindi, questo non è pratico per la maggior parte degli aspetti e non dovresti usarlo.

Nell'esempio seguente, il server contiene due schede NIC, una è configurata con 192.168.101.1 ip-address per thegeekstuff.com, un'altra è configurata con 192.168.102.1 per top5freeware.com. Entrambi questi indirizzi IP sono serviti da un singolo server Web Apache in esecuzione su quel server utilizzando un host virtuale basato su IP.

Fig:Host virtuale basato su IP Apache

Host virtuale basato sul nome

In questa configurazione, quando il server Web Apache riceve una richiesta, cerca il nome host nell'intestazione HTTP e, a seconda del nome host, gestisce diversi siti Web. Questo è molto semplice, poiché hai bisogno di un solo indirizzo IP su quel server fisico; ma aggiorni il DNS con più nomi di siti Web che puntano allo stesso indirizzo IP. Per tutti gli scopi pratici, utilizzerai solo la configurazione dell'host virtuale basata sul nome.

Nell'esempio seguente, il server contiene solo una scheda NIC, configurata con l'indirizzo IP 192.168.101.1. La voce DNS per il sito Web thegeekstuff.com e top5freeware.com punta all'indirizzo IP 192.168.101.1. Quando Apache riceve una richiesta, cerca la voce del nome host nell'intestazione HTTP e serve il sito Web corrispondente.

Fig:Host virtuale basato sul nome Apache

1. Decommentare httpd-vhosts.conf in httpd.conf

Se hai installato Apache 2 dal sorgente, per impostazione predefinita, la riga seguente sarà commentata nel file httpd.conf. Decommenta questa riga.

# vi /usr/local/apache2/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf

2. Configura host virtuali

Modifica httpd-vhosts.conf come mostrato di seguito per configurare l'impostazione dell'host virtuale basato su nome per due host.

  • NameVirtualHost *:80 – Indica che tutti gli host virtuali basati sul nome saranno in ascolto sulla porta predefinita 80
  • – Racchiude tutti i parametri di configurazione di Apache per ogni host virtuale tra questi tag VirtualHost. Qualsiasi direttiva apache può essere utilizzata all'interno del contenitore virtualhost.
  • Nell'esempio seguente, stiamo configurando l'host virtuale per thegeekstuff.com e top5freeware.com in ascolto sulla stessa porta 80. Quindi, ci saranno due , uno per ogni sito web .
  • Quando vai su thegeekstuff.com, i file sotto /usr/local/apache2/docs/thegeekstuff saranno serviti da Apache; e access_log e error_log per questo sito andranno in /usr/local/apache2/logs/thegeekstuff
# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache2/docs/thegeekstuff"
    ServerName thegeekstuff.com
    ServerAlias www.thegeekstuff.com
    ErrorLog "logs/thegeekstuff/error_log"
    CustomLog "logs/thegeekstuff/access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache2/docs/top5freeware"
    ServerName top5freeware.com
    ServerAlias www.top5freeware.com
    ErrorLog "logs/top5freeware/error_log"
    CustomLog "logs/top5freeware/access_log" common
</VirtualHost>

3. Controlla la sintassi di configurazione di VirtualHost

Verifica la sintassi della configurazione virtuale utilizzando "httpd -S" come mostrato di seguito. Quando tutto è impostato correttamente, viene visualizzato semplicemente "Sintassi OK".

# /usr/local/apache2/bin/httpd -S
VirtualHost configuration:
Syntax OK

Quando qualcosa non è configurato correttamente, verrà visualizzato un messaggio di avviso, incluso il messaggio "la directory non esce" come mostrato di seguito.

# /usr/local/apache2/bin/httpd -S
Warning: DocumentRoot [/usr/local/apache2/docs/top5freeware] does not exist
Warning: ErrorLog [/usr/local/apache2/logs/thegeekstuff] does not exist
Syntax OK

4. Riavvia l'Apache e prova

# /usr/local/apache2/bin/apachectl restart

Ora, quando vai su thegeekstuff.com (o www.thegeekstuff.com), apache servirà i file dalla directory /usr/local/apache2/docs/thegeekstuff.

Quando vai su top5freeware.com (o www.top5freeware.com), lo stesso apache in esecuzione sullo stesso server servirà i file dalla directory /usr/local/apache2/docs/top5freeware.

Giusto per ribadire, affinché l'host virtuale basato sul nome funzioni correttamente, la voce DNS per entrambi questi siti Web dovrebbe puntare allo stesso indirizzo IP esterno del server fisico su cui è in esecuzione il server Web Apache.


Linux
  1. Come configurare SSL/TLS con Apache httpd su Red Hat

  2. Come creare host virtuali Apache su CentOS 7

  3. Configura un host virtuale basato sul nome in Apache

  4. Come configurare il filesystem ZFS su Linux con esempi di comandi zpool

  5. Come configurare l'host virtuale apache su ubuntu

Come configurare un host virtuale Nginx

Come configurare l'host virtuale Apache su CentOS 8

Come configurare l'host virtuale Apache su Ubuntu 20.04 LTS

Come installare Apache con Virtual Host su CentOS 8

Come configurare gli host virtuali Apache su Ubuntu 20.04

Come impostare l'autenticazione della password con Apache su Ubuntu 18.04