Differenze tra le versioni di "Apache2-duplica-istanza"
(Creata pagina con '= Duplicare l'istanza di Apache = Le spiegazioni che seguono fanno riferimento ad una linux box con SUSE 11.3 sulla quale sia già installato Apache 2.2.15 distribuzione SUSE. Se...') |
|||
Riga 17: | Riga 17: | ||
Aggiungiamo poi le seguenti direttive, immediatamente dopo la riga con la direttiva '''ErrorLog''' rispettivamente nei due file di configurazione: | Aggiungiamo poi le seguenti direttive, immediatamente dopo la riga con la direttiva '''ErrorLog''' rispettivamente nei due file di configurazione: | ||
CustomLog /var/log/apache2/access_log-80 combined | CustomLog /var/log/apache2/access_log-80 combined | ||
− | PidFile /var/run/httpd2- | + | PidFile /var/run/httpd2-80.pid |
e | e | ||
CustomLog /var/log/apache2/access_log-88 combined | CustomLog /var/log/apache2/access_log-88 combined | ||
− | PidFile /var/run/httpd2- | + | PidFile /var/run/httpd2-88.pid |
<br> | <br> | ||
Modifichiamo ora la direttiva del file listen-88.conf nel seguente modo: | Modifichiamo ora la direttiva del file listen-88.conf nel seguente modo: | ||
Riga 28: | Riga 28: | ||
#CustomLog /var/log/apache2/access_log combined | #CustomLog /var/log/apache2/access_log combined | ||
<br> | <br> | ||
+ | |||
= Attiviamo le due istanze di Apache = | = Attiviamo le due istanze di Apache = | ||
Versione delle 14:17, 23 dic 2010
Duplicare l'istanza di Apache
Le spiegazioni che seguono fanno riferimento ad una linux box con SUSE 11.3 sulla quale sia già installato Apache 2.2.15 distribuzione SUSE. Sebbene i concetti base siano gli stessi, è probabile che qualche particolare debba essere adattato alla distribuzione specifica utilizzata.
Per ottenere il risultato sperato sarà necessario eseguire il binario di Apache due volte a partire da un diverso file di configurazione evitando conflitti tra le due istanze. Nella nostra configurazione di esempio utilizzeremo stesso indirizzo, ma porte diverse, più precisamente le porte utilizzate saranno la 80 e 88 sullo stesso indirizzo IP.
Altro problema è rappresentato dal pid file nel quale Apache memorizza l'identificatore univoco del processo, process id, e che dovrà essere distinto per ogni istanza.
Cominciamo con il duplicare il file di configurazione httpd.conf, nel nostro caso posizionato in /etc/apache2, rinominandolo httpd-80.conf e creandone una copia httpd-88.conf.
Stesso procedimento lo applichiamo al file listen.conf rinominandolo in listen-80.conf e creandone una copia di nome listen-88.conf.
Modifichiamo le direttive dei file httpd-80.conf e httpd-88.conf rispettivamente nel seguente modo:
ErrorLog /var/log/apache2/error_log-80 Include /etc/apache2/listen-80.conf
e
ErrorLog /var/log/apache2/error_log-88 Include /etc/apache2/listen-88.conf
Aggiungiamo poi le seguenti direttive, immediatamente dopo la riga con la direttiva ErrorLog rispettivamente nei due file di configurazione:
CustomLog /var/log/apache2/access_log-80 combined PidFile /var/run/httpd2-80.pid
e
CustomLog /var/log/apache2/access_log-88 combined PidFile /var/run/httpd2-88.pid
Modifichiamo ora la direttiva del file listen-88.conf nel seguente modo:
Listen 88
Ora passiamo a modificare il file sysconfig.d/global.conf commentando la direttiva CustomLog
#CustomLog /var/log/apache2/access_log combined
Attiviamo le due istanze di Apache
Per eseguire lo start e lo stop del web server si può (e comunemente direttamente o indirettamente lo si fa) utilizzare lo script apachectl. Tale script esegue alcuni controlli prima di lanciare o bloccare il demone httpd. All'avvio viene utilizzato di default il file di configurazione httpd.conf, ma, per nostra fortuna, risulta possibile indicarne uno diverso con l'opzione -f.
Posizioniamoci in /usr/sbin/ dove nel nostro caso si trova apachectl, rinominiamo il file in apachectl-80 e ne creiamo una copia di nome apachectl-88.
Editiamo i file appena creati in modo da specificare come file di configurazione corretto. Per farlo dobbiamo individuare la riga che inizia con httpd_conf= e modificarla per utilizzare il file di configurazione previsto:
httpd_conf=${APACHE_HTTPD_CONF:-$sysconfdir/httpd-80.conf}
e
httpd_conf=${APACHE_HTTPD_CONF:-$sysconfdir/httpd-88.conf}
Proviamo la configurazione con:
apachectl-80 -t
e
apachectl-88 -t