1 508
contributi
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à, |
contributi