Gestione della banda in Apache: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
mNessun oggetto della modifica
Riga 235: Riga 235:


=== bw_mod ===
=== bw_mod ===
In Apache2 la configurazione globale del server può essere separata da quella dei VHosts e delle Directory. Sono presenti, infatti, due file: <tt>/etc/apache2/apache2.conf</tt>, in cui sono inserite le configurazioni globali del server (praticamente la maggior parte delle direttive del vecchio <tt>httpd.conf</tt>); e <tt>/etc/apache2/sites-enabled/000-default</tt>, in cui ci sono le direttive per VHosts e Directories (in realtà è un link simbolico al file <tt>/etc/apache2/sites-available/default</tt>).<br/>
In Apache2 la configurazione globale del server può essere separata da quella dei VHosts e delle Directory. Sono presenti, infatti, due file: <code>/etc/apache2/apache2.conf</code>, in cui sono inserite le configurazioni globali del server (praticamente la maggior parte delle direttive del vecchio <code>httpd.conf</code>); e <code>/etc/apache2/sites-enabled/000-default</code>, in cui ci sono le direttive per VHosts e Directories (in realtà è un link simbolico al file <code>/etc/apache2/sites-available/default</code>).<br/>
Per poter, quindi, configurare il nostro ''bw_mod'', possiamo inserire le prime quattro direttive della seguente lista in <tt>apache2.conf</tt> come variabili globali, mentre tutte le altre possono essere inserite indifferentemente in <tt>apache2.conf</tt>, se vogliamo applicare le limitazioni a tutti i siti serviti dal serverweb, oppure in <tt>000-default</tt> nelle apposite sezioni, se vogliamo applicarle a specifici VHosts o Directories.<br/>
Per poter, quindi, configurare il nostro ''bw_mod'', possiamo inserire le prime quattro direttive della seguente lista in <code>apache2.conf</code> come variabili globali, mentre tutte le altre possono essere inserite indifferentemente in <code>apache2.conf</code>, se vogliamo applicare le limitazioni a tutti i siti serviti dal serverweb, oppure in <code>000-default</code> nelle apposite sezioni, se vogliamo applicarle a specifici VHosts o Directories.<br/>
{{ Warningbox | Momentaneamente il modulo '''non supporta il sistema .htaccess''', quindi non è possibile inserire le direttive in questi file.<br/>
{{ Warningbox | Momentaneamente il modulo '''non supporta il sistema .htaccess''', quindi non è possibile inserire le direttive in questi file.<br/>
In alcuni punti della guida si fa riferimento alla configurazione di direttive del modulo ''mod_bandwidth'' dove è indicata la possibilità d'uso in .htaccess: con ''bw_mod'' non bisogna prendere in considerazione quei '''contesti'''.}}
In alcuni punti della guida si fa riferimento alla configurazione di direttive del modulo ''mod_bandwidth'' dove è indicata la possibilità d'uso in .htaccess: con ''bw_mod'' non bisogna prendere in considerazione quei '''contesti'''.}}
Riga 242: Riga 242:
==== '''Direttive globali''' ====
==== '''Direttive globali''' ====
===== <code>'''BandWidthModule'''</code> =====
===== <code>'''BandWidthModule'''</code> =====
'''Sintassi''': <tt>BandWidthModule On|Off</tt><br/>
'''Sintassi''': <code>BandWidthModule On|Off</code><br/>
'''Default''': <tt>Off</tt><br/>
'''Default''': <code>Off</code><br/>
Tramite questa direttiva attiviamo o disattiviamo il modulo
Tramite questa direttiva attiviamo o disattiviamo il modulo


===== <code>'''BandWidthDebug'''</code> =====
===== <code>'''BandWidthDebug'''</code> =====
'''Sintassi''': <tt>BandWidthDebug On|Off</tt><br/>
'''Sintassi''': <code>BandWidthDebug On|Off</code><br/>
'''Default''': <tt>Off</tt><br/>
'''Default''': <code>Off</code><br/>
Questa direttiva serve ad attivare la funzione di debug (utile per chi si vuole divertire a sviluppare il modulo).
Questa direttiva serve ad attivare la funzione di debug (utile per chi si vuole divertire a sviluppare il modulo).


===== <code>'''BandWidthPacket'''</code> =====
===== <code>'''BandWidthPacket'''</code> =====
'''Sintassi''': <tt>BandWidthPacket <Dimensione pacchetti in bytes></tt><br/>
'''Sintassi''': <code>BandWidthPacket <Dimensione pacchetti in bytes></code><br/>
'''Default''': <tt>8192</tt><br/>
'''Default''': <code>8192</code><br/>
Questa direttiva indica la dimensione massima dei pacchetti trasferiti.<br/>
Questa direttiva indica la dimensione massima dei pacchetti trasferiti.<br/>
Solitamente, in una configurazione generica, non è necessario modificare questo valore. In caso si voglia ottimizzare la trasmissione dati (e soprattutto se si sa cosa si sa facendo), possono essere specificati valori tra 1024 e 131072.<br/>
Solitamente, in una configurazione generica, non è necessario modificare questo valore. In caso si voglia ottimizzare la trasmissione dati (e soprattutto se si sa cosa si sa facendo), possono essere specificati valori tra 1024 e 131072.<br/>
Riga 259: Riga 259:


===== <code>'''BandWidthError'''</code> =====
===== <code>'''BandWidthError'''</code> =====
'''Sintassi''': <tt>BandWidthError <Num. Errore></tt><br/>
'''Sintassi''': <code>BandWidthError <Num. Errore></code><br/>
''' Default''': <tt>none</tt> (Vengono usati i valori standard di Apache2).<br/>
''' Default''': <code>none</code> (Vengono usati i valori standard di Apache2).<br/>
In caso vogliamo personalizzare la pagina di errore quando si raggiungono i limiti impostati con <code>''MaxConnection''</code>, con questa direttiva possiamo indicare ad apache che tipo di errore mostrare con <code><Num. Errore></code> ed eventualmente, mettendo mano alla direttiva <code>ErrorDocument</code> in <tt>/etc/apache2/apache2.conf</tt>, quale pagina deve essere mostrata.<br/>
In caso vogliamo personalizzare la pagina di errore quando si raggiungono i limiti impostati con <code>''MaxConnection''</code>, con questa direttiva possiamo indicare ad apache che tipo di errore mostrare con <code><Num. Errore></code> ed eventualmente, mettendo mano alla direttiva <code>ErrorDocument</code> in <code>/etc/apache2/apache2.conf</code>, quale pagina deve essere mostrata.<br/>
Di default, quando viene raggiunto il numero massimo di connessioni, viene mostrata la classica pagina d'errore 503 HTTP_SERVICE_UNAVAILABLE (possiamo controllare in <code>apache2.conf</code> la sezione con tutti gli errori che apache può restituire al browser).
Di default, quando viene raggiunto il numero massimo di connessioni, viene mostrata la classica pagina d'errore 503 HTTP_SERVICE_UNAVAILABLE (possiamo controllare in <code>apache2.conf</code> la sezione con tutti gli errori che apache può restituire al browser).
Se usiamo una pagina d'errore personalizzata, è importante che l'errore associato alla nostra pagina non sia già usato da apache (l'autore del modulo ha testato con successo l'errore numero 510).
Se usiamo una pagina d'errore personalizzata, è importante che l'errore associato alla nostra pagina non sia già usato da apache (l'autore del modulo ha testato con successo l'errore numero 510).
Per esempio, per usare una pagina d'errore personalizzata, possiamo scrivere:
Per esempio, per usare una pagina d'errore personalizzata, possiamo scrivere:
<pre>ErrorDocument 510 /errors/paginaerrore.html</pre>
<pre>ErrorDocument 510 /errors/paginaerrore.html</pre>
nella direttiva <code>ErrorDocument</code> in <tt>etc/apache2/apache2.conf</tt>, e
nella direttiva <code>ErrorDocument</code> in <code>etc/apache2/apache2.conf</code>, e
<pre>BandWidthError 510</pre>
<pre>BandWidthError 510</pre>
nella direttiva <code>BandWidthError</code>.
nella direttiva <code>BandWidthError</code>.
Riga 275: Riga 275:


===== <code>'''ForceBandWidthModule'''</code> =====
===== <code>'''ForceBandWidthModule'''</code> =====
'''Sintassi''': <tt>ForceBandWidthModule On|Off</tt><br/>
'''Sintassi''': <code>ForceBandWidthModule On|Off</code><br/>
'''Default''': <tt>On</tt><br/>
'''Default''': <code>On</code><br/>
Di default, naturalmente, il modulo processerà e applicherà i limiti a ogni richiesta al webserver. In caso si voglia indicare manualmente quali file debbano essere soggetti alla limitazione di banda, si può settare questa direttiva su <code>''off''</code>, aggiungendo, poi, i tipi di file cui deve essere applicato il limite:
Di default, naturalmente, il modulo processerà e applicherà i limiti a ogni richiesta al webserver. In caso si voglia indicare manualmente quali file debbano essere soggetti alla limitazione di banda, si può settare questa direttiva su <code>''off''</code>, aggiungendo, poi, i tipi di file cui deve essere applicato il limite:
<pre>ForceBandWidthModule Off
<pre>ForceBandWidthModule Off
Riga 282: Riga 282:


===== <code>'''BandWidth'''</code> =====
===== <code>'''BandWidth'''</code> =====
'''Sintassi''': <tt>BandWidth <Origine della connessione> <Limite di banda in bytes/s></tt><br/>
'''Sintassi''': <code>BandWidth <Origine della connessione> <Limite di banda in bytes/s></code><br/>
'''Default''': <tt>all 0</tt><br/>
'''Default''': <code>all 0</code><br/>
Vedi [[#BandWidth | BandWidth]] del ''mod_bandwidth''.
Vedi [[#BandWidth | BandWidth]] del ''mod_bandwidth''.


===== <code>'''MinBandWidth'''</code> =====
===== <code>'''MinBandWidth'''</code> =====
'''Sintassi''': <tt>MinBandWidth <Origine della connessione> <Limite di banda in bytes/s></tt><br/>
'''Sintassi''': <code>MinBandWidth <Origine della connessione> <Limite di banda in bytes/s></code><br/>
'''Default''': <tt>all 0</tt><br/>
'''Default''': <code>all 0</code><br/>
Vedi [[#MinBandWidth | MinBandWidth]] del ''mod_bandwidth''.
Vedi [[#MinBandWidth | MinBandWidth]] del ''mod_bandwidth''.


===== <code>'''LargeFileLimit'''</code> =====
===== <code>'''LargeFileLimit'''</code> =====
'''Sintassi''': <tt>LargeFileLimit <Tipo di file> <Dimensione minima file in KB> <Limite in bytes/s></tt><br/>
'''Sintassi''': <code>LargeFileLimit <Tipo di file> <Dimensione minima file in KB> <Limite in bytes/s></code><br/>
'''Default''': <tt>none</tt><br/>
'''Default''': <code>none</code><br/>
Con questa direttiva possiamo indicare un limite di trasferimento <code><Limite in bytes/s></code> per un determinato tipo di file <code><Tipo di file></code> che abbia la dimensione minima indicata con <code><dimensione minima del file in KB></code>.
Con questa direttiva possiamo indicare un limite di trasferimento <code><Limite in bytes/s></code> per un determinato tipo di file <code><Tipo di file></code> che abbia la dimensione minima indicata con <code><dimensione minima del file in KB></code>.
Il parametro <code><Tipo di file></code> viene espresso con l'estensione del file (p.e. <code>''.avi''</code>, <code>''.exe''</code>, <code>''.tgz''</code>); si può usare il carattere jolly <code>''*''</code> per indicare ogni tipo di file.
Il parametro <code><Tipo di file></code> viene espresso con l'estensione del file (p.e. <code>''.avi''</code>, <code>''.exe''</code>, <code>''.tgz''</code>); si può usare il carattere jolly <code>''*''</code> per indicare ogni tipo di file.
Riga 303: Riga 303:


===== <code>'''MaxConnection'''</code> =====
===== <code>'''MaxConnection'''</code> =====
'''Sintassi''': <tt>MaxConnection <Origine delle connessioni> <Num. massimo connessioni></tt><br/>
'''Sintassi''': <code>MaxConnection <Origine delle connessioni> <Num. massimo connessioni></code><br/>
'''Default''': <tt>all 0</tt> (Illimitate da ogni origine).<br/>
'''Default''': <code>all 0</code> (Illimitate da ogni origine).<br/>
Questa direttiva permette di impostare un numero massimo di connessioni provenienti da una determinata origine. La sintassi è simile alla direttiva <code>''BandWidth''</code>. Le connessioni eccedenti il limite riceveranno l'errore impostato in <code>''BandWidthError''</code> (di default è il 503).
Questa direttiva permette di impostare un numero massimo di connessioni provenienti da una determinata origine. La sintassi è simile alla direttiva <code>''BandWidth''</code>. Le connessioni eccedenti il limite riceveranno l'errore impostato in <code>''BandWidthError''</code> (di default è il 503).
{{ Warningbox | Affinchè il limite di connessioni per una data origine possa essere applicato, è necessario che quella origine abbia anche una limitazione di banda specificata con <code>''BandWidth''</code>.<br/>
{{ Warningbox | Affinchè il limite di connessioni per una data origine possa essere applicato, è necessario che quella origine abbia anche una limitazione di banda specificata con <code>''BandWidth''</code>.<br/>