giugno 25, 2017

Più siti web sullo stesso Apache direttiva VirtualHost

Una funzionalità utilissima e di facile configurazione che mette a disposizione Apache HTTP Server è la pratica del virtual host ovvero la possibilità di ospitare più siti web sulla stessa istanza di servizio httpd. La comunità offre un numero impressionante di moduli che permettono di estendere le funzionalità core di Apache. In questo articolo mostrerò come utilizzare l’estensione proxy_ajp_module per configurare più siti web sullo stesso server Apache sfruttando la direttiva “VirtualHost“.

Lo scenario che prenderò in esame è rappresentato dalla seguente figura.

screen07

 

Utilizziamo un ambiente totalmente virtualizzato in cui sono in esecuzione 3 macchine virtuali che montano un sistema operativo Linux CentOS 6.4 (dal sito ufficiale potete scaricare una versione minimal dell’ottimo sistema operativo).

Configurazione Apache Web Server – IP: 10.10.1.50

Installare Apache Web Server e verificare che il modulo proxy_ajp sia abilitato (di solito lo è di default sulla versione 2 di Apache).

Configuriamo il puntamento ajp ai 2 siti. Le applicazioni web saranno di fatto in esecuzione sui 2 Tomcat Server. Possiamo quindi creare un file di configurazione ad-hoc come questo:

Ho usato un RedirectMatch in modo che Apache effettui un redirect di default dalla url http://site1.mydomain.com  alla url  http://site1.mydomain.com/my_app1. Fatto questo possiamo procedere con la configurazione dei 2 Tomcat Server.

Tomcat Application Server -IP:10.10.1.100

Tomcat Application Server -IP:10.10.1.200

Se è stata fatta un’installazione tipica di Tomcat sulle 2 macchine, il connettore ajp dovrebbe essere gia configurato. In caso contrarioè sufficiente assicurarsi che nel file server.xml, la riga seguente non sia commentata:

Effettuare un riavvio su tutte e tre le macchine, sia del demone httpd che dei due tomcat. Per impostare i dns associati ai 2 siti si può usare il  file /etc/hosts sia del client sia del server Apache. Ecco un’esempio:

Related posts

Leave a Reply

Your email address will not be published.