Gestione della banda in Apache: differenze tra le versioni

corretta gerarchia titoli
Nessun oggetto della modifica
(corretta gerarchia titoli)
Riga 1: Riga 1:
=Introduzione=
== Introduzione ==
Questo articolo affronta il problema della gestione della banda in Apache (Ver. 1 e Ver. 2), mostrando come installare e configurare tre diversi moduli utilizzabili a tale fine:
Questo articolo affronta il problema della gestione della banda in Apache (Ver. 1 e Ver. 2), mostrando come installare e configurare tre diversi moduli utilizzabili a tale fine:
==mod_bandwidth==
=== mod_bandwidth ===
* HomePage: http://www.cohprog.com/mod_bandwidth.html
* HomePage: http://www.cohprog.com/mod_bandwidth.html
* Licenza: Apache Group licence
* Licenza: Apache Group licence
* Copyright: Yann Stettler and CohProg SàRL
* Copyright: Yann Stettler and CohProg SàRL
* Versione Apache: 1
* Versione Apache: 1
==bw_mod==
=== bw_mod ===
* HomePage: http://www.ivn.cl/apache/
* HomePage: http://www.ivn.cl/apache/
* Licenza: Apache 2.0 License/[http://www.ivn.cl/apache/LICENSE.txt Ivn Project License]
* Licenza: Apache 2.0 License/[http://www.ivn.cl/apache/LICENSE.txt Ivn Project License]
* Copyright: Ivan Barrera A.
* Copyright: Ivan Barrera A.
* Versione Apache: 2
* Versione Apache: 2
==mod_bwshare==
=== mod_bwshare ===
* HomePage: http://www.topology.org/src/bwshare/README.html
* HomePage: http://www.topology.org/src/bwshare/README.html
* Licenza: [http://www.topology.org/src/bwshare/LICENCE Alan Kennington's modified Artistic Licence]  
* Licenza: [http://www.topology.org/src/bwshare/LICENCE Alan Kennington's modified Artistic Licence]  
Riga 17: Riga 17:
* Versione Apache: 1 e 2
* Versione Apache: 1 e 2


=Installazione=
== Installazione ==


==mod_bandwidth==
=== mod_bandwidth ===
Il modulo <code>'''mod_bandwidth'''</code> è installato di default insieme al server apache; lo possiamo trovare in <code>'''/usr/lib/apache/1.3/'''</code>.
Il modulo <code>'''mod_bandwidth'''</code> è installato di default insieme al server apache; lo possiamo trovare in <code>'''/usr/lib/apache/1.3/'''</code>.
Se questo modulo dovesse dare problemi (esempi: non imposta correttamente la banda, ma sembra che i limiti che impostiamo siano visti come bit e non come byte, non accetta la direttiva MaxConnection), vi consiglio di reinstallarlo come descritto qui sotto.
Se questo modulo dovesse dare problemi (esempi: non imposta correttamente la banda, ma sembra che i limiti che impostiamo siano visti come bit e non come byte, non accetta la direttiva MaxConnection), vi consiglio di reinstallarlo come descritto qui sotto.
Riga 43: Riga 43:




===Aggiornamento===
==== Aggiornamento ====


Il procedimento appena presentato, crea diversi problemi, soprattutto in fase di aggiornamento del sistema: ogni volta il pacchetto
Il procedimento appena presentato, crea diversi problemi, soprattutto in fase di aggiornamento del sistema: ogni volta il pacchetto
Riga 67: Riga 67:
</pre>
</pre>


==bw_mod==
=== bw_mod ===
Come prima cosa procuriamoci il modulo dal [http://www.ivn.cl/apache/ sito dello sviluppatore]. A questo punto estraiamolo:
Come prima cosa procuriamoci il modulo dal [http://www.ivn.cl/apache/ sito dello sviluppatore]. A questo punto estraiamolo:
<pre># tar vzxf bw_mod-6.0.tgz</pre>
<pre># tar vzxf bw_mod-6.0.tgz</pre>
Riga 83: Riga 83:
In questo caso non dobbiamo preoccuparci, in quanto nel file <code>apache2.conf</code> c'è un richiamo a <code>httpd.conf</code>.}}
In questo caso non dobbiamo preoccuparci, in quanto nel file <code>apache2.conf</code> c'è un richiamo a <code>httpd.conf</code>.}}


==mod_bwshare==
=== mod_bwshare ===
Ancora da scrivere
Ancora da scrivere


=Configurazione=
== Configurazione ==


==mod_bandwidth==
=== mod_bandwidth ===
Ora configuriamo apache per utilizzare mod_bandwidth.<br/>
Ora configuriamo apache per utilizzare mod_bandwidth.<br/>
Aggiungiamo il modulo al file <code>'''/etc/apache/modules.conf'''</code>. Per fare questo abbiamo due possibilità:
Aggiungiamo il modulo al file <code>'''/etc/apache/modules.conf'''</code>. Per fare questo abbiamo due possibilità:
Riga 115: Riga 115:
</pre>
</pre>


===Note per il corretto funzionamento===
==== Note per il corretto funzionamento ====
Per ottenere risultati, è importante che non ci siano dei link morti nella directory <code>'''link'''</code> di mod_bandwidth, quando viene eseguito avviato il server con il modulo attivo.
Per ottenere risultati, è importante che non ci siano dei link morti nella directory <code>'''link'''</code> di mod_bandwidth, quando viene eseguito avviato il server con il modulo attivo.


Riga 122: Riga 122:




===Direttive globali di configurazione===
==== Direttive globali di configurazione ====


====<code>'''BandWidthDataDir'''</code>====
===== <code>'''BandWidthDataDir'''</code> =====
'''Sintassi''': <code>BandWidthDataDir <directory></code><br/>
'''Sintassi''': <code>BandWidthDataDir <directory></code><br/>
'''Default''': <code>/tmp/apachebw</code><br/>
'''Default''': <code>/tmp/apachebw</code><br/>
Riga 131: Riga 131:




====<code>'''BandWidthModule'''</code>====
===== <code>'''BandWidthModule'''</code> =====
'''Sintassi''': <code>BandWidthModule <On|Off></code><br/>
'''Sintassi''': <code>BandWidthModule <On|Off></code><br/>
'''Default''': <code>Off</code><br/>
'''Default''': <code>Off</code><br/>
Riga 140: Riga 140:




====<code>'''BandWidthPulse'''</code>====
===== <code>'''BandWidthPulse'''</code> =====
'''Sintassi''': <code>BandWidthPulse <microseconds></code> <br/>
'''Sintassi''': <code>BandWidthPulse <microseconds></code> <br/>
'''Default''':<br/>
'''Default''':<br/>
Riga 154: Riga 154:




===Direttive per la configurazione di Directory e/o VirtualServer===
==== Direttive per la configurazione di Directory e/o VirtualServer ====


====<code>'''BandWidth'''</code>====
===== <code>'''BandWidth'''</code> =====
'''Sintassi''': <code>BandWidth <domain|ip|all> <rate></code><br/>
'''Sintassi''': <code>BandWidth <domain|ip|all> <rate></code><br/>
'''Default''': <code>none</code><br/>
'''Default''': <code>none</code><br/>
Riga 177: Riga 177:




====<code>'''LargeFileLimit'''</code>====
===== <code>'''LargeFileLimit'''</code> =====
'''Sintassi''': <code>LargeFileLimit <filesize> <rate></code><br/>
'''Sintassi''': <code>LargeFileLimit <filesize> <rate></code><br/>
'''Default''': <code>none</code><br/>
'''Default''': <code>none</code><br/>
Riga 196: Riga 196:




====<code>'''MaxConnection'''</code>====
===== <code>'''MaxConnection'''</code> =====
'''Sintassi''': <code>MaxConnection <connections></code><br/>
'''Sintassi''': <code>MaxConnection <connections></code><br/>
'''Default''': <code>0</code> (illimitate)<br/>
'''Default''': <code>0</code> (illimitate)<br/>
Riga 204: Riga 204:




====<code>'''MinBandWidth'''</code>====
===== <code>'''MinBandWidth'''</code> =====
'''Sintassi''': <code>MinBandWidth <domain|ip|all> <rate></code><br/>
'''Sintassi''': <code>MinBandWidth <domain|ip|all> <rate></code><br/>
'''Default''': <code>all 256</code><br/>
'''Default''': <code>all 256</code><br/>
Riga 231: Riga 231:
{{Box|NOTA:|Se ad una richiesta devono essere applicati sia un limite impostato nella direttiva <code>BandWidth</code> sia uno impostato nella direttiva <code>LargeFileLimit</code>, verrà applicato il più piccolo (ma mai minore a quello eventualmente indicato nella direttiva <code>MinBandWidth</code>)}}
{{Box|NOTA:|Se ad una richiesta devono essere applicati sia un limite impostato nella direttiva <code>BandWidth</code> sia uno impostato nella direttiva <code>LargeFileLimit</code>, verrà applicato il più piccolo (ma mai minore a quello eventualmente indicato nella direttiva <code>MinBandWidth</code>)}}


==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: <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/>
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 <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/>
Riga 237: Riga 237:
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'''.}}


==='''Direttive globali'''===
==== '''Direttive globali''' ====
====<code>'''BandWidthModule'''</code>====
===== <code>'''BandWidthModule'''</code> =====
'''Sintassi''': <tt>BandWidthModule On|Off</tt><br/>
'''Sintassi''': <tt>BandWidthModule On|Off</tt><br/>
'''Default''': <tt>Off</tt><br/>
'''Default''': <tt>Off</tt><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''': <tt>BandWidthDebug On|Off</tt><br/>
'''Default''': <tt>Off</tt><br/>
'''Default''': <tt>Off</tt><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''': <tt>BandWidthPacket <Dimensione pacchetti in bytes></tt><br/>
'''Default''': <tt>8192</tt><br/>
'''Default''': <tt>8192</tt><br/>
Riga 255: Riga 255:
In caso si usino valori eccessivi per la propria connessione, il modulo riporterà automaticamente la direttiva a valori più bassi.
In caso si usino valori eccessivi per la propria connessione, il modulo riporterà automaticamente la direttiva a valori più bassi.


====<code>'''BandWidthError'''</code>====
===== <code>'''BandWidthError'''</code> =====
'''Sintassi''': <tt>BandWidthError <Num. Errore></tt><br/>
'''Sintassi''': <tt>BandWidthError <Num. Errore></tt><br/>
''' Default''': <tt>none</tt> (Vengono usati i valori standard di Apache2).<br/>
''' Default''': <tt>none</tt> (Vengono usati i valori standard di Apache2).<br/>
Riga 269: Riga 269:
{{ Warningbox | Possono sorgere problemi quando la pagina d'errore personalizzata ha una dimensione minore di 1024bytes: è opportuno, quindi, creare pagine più grandi di questo valore. }}
{{ Warningbox | Possono sorgere problemi quando la pagina d'errore personalizzata ha una dimensione minore di 1024bytes: è opportuno, quindi, creare pagine più grandi di questo valore. }}


==='''Direttive per la configurazione di Directory e/o VirtualServer'''===
==== '''Direttive per la configurazione di Directory e/o VirtualServer''' ====


====<code>'''ForceBandWidthModule'''</code>====
===== <code>'''ForceBandWidthModule'''</code> =====
'''Sintassi''': <tt>ForceBandWidthModule On|Off</tt><br/>
'''Sintassi''': <tt>ForceBandWidthModule On|Off</tt><br/>
'''Default''': <tt>On</tt><br/>
'''Default''': <tt>On</tt><br/>
Riga 278: Riga 278:
AddOutputFilterByType BW_MOD text/html text/php</pre>
AddOutputFilterByType BW_MOD text/html text/php</pre>


====<code>'''BandWidth'''</code>====
===== <code>'''BandWidth'''</code> =====
'''Sintassi''': <tt>BandWidth <Origine della connessione> <Limite di banda in bytes/s></tt><br/>
'''Sintassi''': <tt>BandWidth <Origine della connessione> <Limite di banda in bytes/s></tt><br/>
'''Default''': <tt>all 0</tt><br/>
'''Default''': <tt>all 0</tt><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''': <tt>MinBandWidth <Origine della connessione> <Limite di banda in bytes/s></tt><br/>
'''Default''': <tt>all 0</tt><br/>
'''Default''': <tt>all 0</tt><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''': <tt>LargeFileLimit <Tipo di file> <Dimensione minima file in KB> <Limite in bytes/s></tt><br/>
'''Default''': <tt>none</tt><br/>
'''Default''': <tt>none</tt><br/>
Riga 299: Riga 299:
diciamo al webserver che per i video con estensione AVI che abbiano dimensioni dai 500 kb in su, dovrà applicare uua velocità massima di trasferimento di 10kb/s.
diciamo al webserver che per i video con estensione AVI che abbiano dimensioni dai 500 kb in su, dovrà applicare uua velocità massima di trasferimento di 10kb/s.


====<code>'''MaxConnection'''</code>====
===== <code>'''MaxConnection'''</code> =====
'''Sintassi''': <tt>MaxConnection <Origine delle connessioni> <Num. massimo connessioni></tt><br/>
'''Sintassi''': <tt>MaxConnection <Origine delle connessioni> <Num. massimo connessioni></tt><br/>
'''Default''': <tt>all 0</tt> (Illimitate da ogni origine).<br/>
'''Default''': <tt>all 0</tt> (Illimitate da ogni origine).<br/>
Riga 310: Riga 310:
Come si può vedere, è una semplice questione di forma: infatti si può tranquillamente indicare come limite <code>''0''</code>, quindi infinito. L'importante è che sia specificato in <code>BandWidth</code>.}}
Come si può vedere, è una semplice questione di forma: infatti si può tranquillamente indicare come limite <code>''0''</code>, quindi infinito. L'importante è che sia specificato in <code>BandWidth</code>.}}


==mod_bwshare==
=== mod_bwshare ===


=Conclusione=
== Conclusione ==


Con questi moduli è possibile, in breve tempo e con la massima semplicità,
Con questi moduli è possibile, in breve tempo e con la massima semplicità,
1 508

contributi