Mi sono trovato a dover pensare a un modo per gestire più istanze apache2 con una sola installazione, e ogni istanza doveva girare con privilegi diversi (e su porte diverse). Inoltre, in fronte a queste istanze, ce ne stava una con mod_proxy e mod_security. Ecco la realizzazione:
Ipotizziamo di usare la directory /etc/apache2-multiserver, con la seguente struttura:
l'archivio con i file completi è scaricabile come allegato di questo post.
facciamo qui solo una breve panoramica dei files:
all'interno della cartella bin troviamo i filesla cartella servers contiene le configurazioni per le varie istanze; ogni istanza (tranne il proxy) avrà 2 file di configurazione:
il primo contiene la configurazione vera e propria dell'istanza, il secondo contiene la configurazione per il proxy verso quell'istanza. vediamo un esempio:
cliente1.serverUser cliente1 Group cliente1 Listen 192.168.17.100:2081 UseCanonicalName Off ErrorLog /var/log/apache2/cliente1/error.log ServerRoot /home/cliente1 PidFile /etc/apache2-multiserver/pids/cliente1.pid ServerName www.cliente1.it [1] ServerAdmin root@cliente1.it [2] ServerSignature Off ServerTokens Prod DocumentRoot /home/cliente1/htdocs Include /etc/apache2-multiserver/common/*.confcliente1.proxy
<VirtualHost 192.168.17.100:80> ServerName www.cliente1.it [3] ServerAlias cliente1.it ServerAdmin proxy@cliente1.it [4] CustomLog /var/log/apache2/cliente1/access.log combined ProxyPass / http://127.0.0.1:2081/ [5] ProxyPassReverse / http://127.0.0.1:2081/ [6] </VirtualHost>
il file proxy.server contiene la configurazione del proxy. il suo contentuto è
User nobody Group nogroup Listen 192.168.17.100:80 UseCanonicalName Off ErrorLog /var/log/apache2/proxy.error_log ServerRoot /etc/apache2-multiserver PidFile pids/proxy.pid LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so NameVirtualHost 192.168.17.100:80 Include /etc/apache2-multiserver/servers/*.proxy
ovviamente, gli access log andranno salvati a livello di proxy, mentre gli error log a livello di istanza stessa.
Links:
[1] http://www.cliente1.it
[2] mailto:root@cliente1.it
[3] http://www.cliente1.it
[4] mailto:proxy@cliente1.it
[5] http://127.0.0.1:2081/
[6] http://127.0.0.1:2081/
[7] http://stefano.dscnet.org/pub/active/0/apache2-multiserver.tar.gz