GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare più siti Web con il server Web Apache

Nel mio ultimo post, ho spiegato come configurare un server web Apache per un singolo sito web. Si è rivelato molto facile. In questo post, ti mostrerò come servire più siti Web utilizzando una singola istanza di Apache.

Nota:ho scritto questo articolo su una macchina virtuale usando Fedora 27 con Apache 2.4.29. Se hai un'altra distribuzione o release di Fedora, i comandi che utilizzerai e le posizioni e il contenuto dei file di configurazione potrebbero essere diversi.

Come menzionato nel mio precedente articolo, tutti i file di configurazione per Apache si trovano in /etc/httpd/conf e /etc/httpd/conf.d . I dati per i siti web si trovano in /var/www per impostazione predefinita. Con più siti web, dovrai fornire più posizioni, una per ogni sito che ospiti.

Hosting virtuale basato sul nome

Con l'hosting virtuale basato sul nome, puoi utilizzare un unico indirizzo IP per più siti web. I server Web moderni, incluso Apache, utilizzano il hostname parte dell'URL specificato per determinare quale host web virtuale risponde alla richiesta di pagina. Ciò richiede solo un po' più di configurazione rispetto a un singolo sito.

Anche se stai iniziando con un solo sito Web, ti consiglio di configurarlo come host virtuale, il che renderà più semplice aggiungere più siti in un secondo momento. In questo articolo, riprenderò da dove eravamo rimasti nell'articolo precedente, quindi dovrai configurare il sito Web originale, un sito Web virtuale basato sul nome.

Preparazione del sito web originale

Prima di configurare un secondo sito Web, è necessario che l'hosting virtuale basato sul nome funzioni per il sito esistente. Se non hai un sito web esistente, torna indietro e creane uno ora.

Una volta che hai il tuo sito, aggiungi la seguente stanza in fondo al suo /etc/httpd/conf/httpd.conf file di configurazione (l'aggiunta di questa stanza è l'unica modifica che devi apportare a httpd.conf file):

<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/html
    ServerName www.site1.org
</VirtualHost>

Questa sarà la prima stanza dell'host virtuale e dovrebbe rimanere la prima per renderla la definizione predefinita. Ciò significa che l'accesso HTTP al server tramite l'indirizzo IP, o tramite un altro nome che si risolve in questo indirizzo IP ma che non dispone di una specifica stanza di configurazione dell'host denominata, sarà indirizzato a questo host virtuale. Tutte le altre stanze di configurazione dell'host virtuale dovrebbero seguire questa.

Devi anche configurare i tuoi siti web con voci in /etc/hosts per fornire la risoluzione del nome. L'ultima volta, abbiamo usato l'indirizzo IP per localhost . Normalmente, questo sarebbe fatto usando il servizio di nomi che usi; ad esempio, Google o Godaddy. Per il tuo sito web di prova, fallo aggiungendo un nuovo nome a localhost riga in /etc/hosts . Aggiungi le voci per entrambi i siti Web in modo da non dover modificare nuovamente questo file in seguito. Il risultato è simile al seguente:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 www.site1.org www.site2.org

Cambiamo anche il /var/www/html/index.html file per essere un po' più esplicito. Dovrebbe assomigliare a questo (con del testo aggiuntivo per identificare questo come sito web numero 1):

<h1>Hello World</h1> 

Web site 1.

Riavvia il server HTTPD per abilitare le modifiche a httpd configurazione. È quindi possibile guardare il sito Web utilizzando il browser in modalità testo Lynx dalla riga di comando.

[root@testvm1 ~]# systemctl restart httpd
[root@testvm1 ~]# lynx www.site1.org

                                              Hello World
  Web site 1.
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Puoi vedere che viene visualizzato il contenuto rivisto per il sito Web originale e che non ci sono errori evidenti. Premere il tasto “Q”, seguito da “Y” per uscire dal browser web Lynx.

Configurazione del secondo sito web

Ora sei pronto per configurare il secondo sito web. Crea una nuova struttura di directory del sito Web con il seguente comando:

[root@testvm1 html]# mkdir -p /var/www/html2

Nota che il secondo sito web è semplicemente un secondo html directory nella stessa /var/www directory come primo sito.

Ora crea un nuovo file di indice, /var/www/html2/index.html , con il seguente contenuto (questo file indice è leggermente diverso, per distinguerlo da quello del sito originale):

<h1>Hello World -- Again</h1> 

Web site 2.

Crea una nuova stanza di configurazione in httpd.conf per il secondo sito Web e posizionarlo sotto la precedente stanza dell'host virtuale (i due dovrebbero sembrare molto simili). Questa stanza indica al server web dove trovare i file HTML per il secondo sito.

<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/html2
    ServerName www.site2.org
</VirtualHost>

Riavvia HTTPD e usa Lynx per visualizzare i risultati.

[root@testvm1 httpd]# systemctl restart httpd
[root@testvm1 httpd]# lynx www.site2.org

                                    Hello World -- Again

   Web site 2.

<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Qui ho compresso l'output risultante per adattarsi a questo spazio. La differenza nella pagina indica che questo è il secondo sito web. Per mostrare entrambi i siti Web contemporaneamente, apri un'altra sessione del terminale e utilizza il browser Web Lynx per visualizzare l'altro sito.

Altre considerazioni

Questo semplice esempio mostra come servire due siti Web con una singola istanza del server HTTPD Apache. La configurazione degli host virtuali diventa un po' più complessa se si considerano altri fattori.

Ad esempio, potresti voler utilizzare alcuni script CGI per uno o entrambi questi siti web. Per fare ciò, devi creare directory per i programmi CGI in /var/www :/var/www/cgi-bin e /var/www/cgi-bin2 , per essere coerente con la denominazione della directory HTML. Sarà quindi necessario aggiungere direttive di configurazione alle stanze dell'host virtuale per specificare l'ubicazione della directory per gli script CGI. Ogni sito Web potrebbe anche avere directory da cui scaricare file; ciò richiederebbe anche voci nella stanza dell'host virtuale appropriato.

Il sito Web di Apache descrive altri metodi per la gestione di più siti Web, nonché opzioni di configurazione dall'ottimizzazione delle prestazioni alla sicurezza.

Apache è un potente server web che può essere utilizzato per gestire siti web che vanno dal semplice al più complesso. Sebbene la sua quota complessiva si stia riducendo, Apache rimane il server HTTPD più comunemente utilizzato su Internet.


Linux
  1. Come configurare un server web Apache

  2. Come proteggere il server Web Apache con Let's Encrypt su RHEL 8

  3. Come creare host virtuali su server Apache per ospitare più siti Web

  4. Come installare il server Web Apache su Ubuntu

  5. Come installare e configurare il server Web Apache su Ubuntu 13.10

Come installare il server Web Apache su Debian 11

Ospita più siti Web su un unico server con Apache su Ubuntu 18.04

Come installare e configurare ModEvasive con Apache su Ubuntu 18.04

Come confrontare le prestazioni del server Web con Apache Bench

Come installare e configurare Caddy Web Server con PHP su Rocky Linux 8

Come installare e configurare un server Web LAMP su Ubuntu 18.04