Aprile 25, 2024

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).

$ yum install httpd
....
....
$ httpd -M | grep proxy
proxy_module (shared)
proxy_balancer_module (shared)
proxy_ftp_module (shared)
proxy_http_module (shared)
proxy_ajp_module (shared)
proxy_connect_module (shared)

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:

$ vi /etc/init.d/conf.d/virtualhosts.config

NameVirtualHost *:80

<VirtualHost *:80>
 ServerName site1.mydomain.com
 ProxyPass /my_app1 ajp://10.10.1.100:8009/my_app1
 ProxyPassReverse /my_app1 ajp://10.10.1.100:8009/my_app1
 RedirectMatch ^/$ http://site1.mydomain.com/my_app1
</VirtualHost>

<VirtualHost *:80>
 ServerName site2.mydomain.com
 ProxyPass /my_app2 ajp://10.10.1.200:8009/my_app2
 ProxyPassReverse /my_app2 ajp://10.10.1.200:8009/my_app2
 RedirectMatch ^/$ http://site2.mydomain.com/my_app2
</VirtualHost>

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:

 <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

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:

$ vi /etc/hosts

10.10.1.50    site1.mydomain.com site2.mydomain.com

Related posts

Leave a Reply

Your email address will not be published.