Differenze tra le versioni di "Apache2-duplica-istanza"

Da WikiSitech.
Vai alla navigazioneVai alla ricerca
(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...')
 
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 1: Riga 1:
= Duplicare l'istanza di Apache =
+
= Tutorial: 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.
+
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. Per altre distribuzioni potrebbe essere necessario qualche adattamento.
  
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.
+
Per ottenere il risultato richiesto sarà necessario eseguire il demone 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.
 
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.
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-ws80.pid
+
  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-ws88.pid
+
  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 =
  
Riga 33: Riga 34:
 
<br>
 
<br>
 
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.<br>
 
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.<br>
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:
+
Editiamo i file appena creati in modo da specificare il 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}
 
  httpd_conf=${APACHE_HTTPD_CONF:-$sysconfdir/httpd-80.conf}
 
e
 
e
Riga 42: Riga 43:
 
e
 
e
 
  apachectl-88 -t
 
  apachectl-88 -t
 +
<br>
 +
 +
= Modifiche allo script di avvio automatico (init.d) =
 +
Per far si che il webserver si riavvii ed arresti correttamente durante le procedure di avvio ed arresto del sistema, è necessario intervenire sullo script presente nella cartella /etc/init.d<br>
 +
Posizioniamoci quindi in /etc/init.d/ dove troveremo il file ''apache2''; rinominiamo il file in apache2-80 e ne creiamo una copia di nome apache2-88.<br>
 +
Editiamo i file appena creati in modo da specificare come file di configurazione quello 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}
 +
<br>
 +
Oltre a questo è necessario intervenire sul nome del file PID, modificando la riga opportuna in:
 +
: ${pidfile:=/var/run/httpd2-80.pid}
 +
e
 +
: ${pidfile:=/var/run/httpd2-88.pid}
 +
<br>
 +
e infine modificare alcune tag contenute nella sezione ''' INIT INFO''' rispettivamente in questo modo:
 +
# Provides:                    apache-80 apache2-80 httpd-80
 +
# Short-Description:            Apache 2.2 HTTP Server (WS port 80)
 +
e
 +
 +
# Provides:                    apache-88 apache2-88 httpd-88
 +
# Short-Description:            Apache 2.2 HTTP Server (WS port 88)
 
<br>
 
<br>

Versione attuale delle 18:11, 23 dic 2010

Tutorial: 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. Per altre distribuzioni potrebbe essere necessario qualche adattamento.

Per ottenere il risultato richiesto sarà necessario eseguire il demone 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 il 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


Modifiche allo script di avvio automatico (init.d)

Per far si che il webserver si riavvii ed arresti correttamente durante le procedure di avvio ed arresto del sistema, è necessario intervenire sullo script presente nella cartella /etc/init.d
Posizioniamoci quindi in /etc/init.d/ dove troveremo il file apache2; rinominiamo il file in apache2-80 e ne creiamo una copia di nome apache2-88.
Editiamo i file appena creati in modo da specificare come file di configurazione quello 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}


Oltre a questo è necessario intervenire sul nome del file PID, modificando la riga opportuna in:

: ${pidfile:=/var/run/httpd2-80.pid}

e

: ${pidfile:=/var/run/httpd2-88.pid}


e infine modificare alcune tag contenute nella sezione INIT INFO rispettivamente in questo modo:

# Provides:                     apache-80 apache2-80 httpd-80
# Short-Description:            Apache 2.2 HTTP Server (WS port 80)

e

# Provides:                     apache-88 apache2-88 httpd-88
# Short-Description:            Apache 2.2 HTTP Server (WS port 88)