1 487
contributi
(Prima versione) |
m (firma) |
||
Riga 8: | Riga 8: | ||
==Installazione== | ==Installazione== | ||
Il modulo '''mod_bandwidth''' | Il modulo '''mod_bandwidth''' � installato di default insieme al server apache; lo possiamo trovare in '''/usr/lib/apache/1.3/'''. | ||
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. | ||
* rechiamoci sul sito del produttore: http://www.cohprog.com/mod_bandwidth.html e scarichiamo l'ultima versione (link diretto: | * rechiamoci sul sito del produttore: http://www.cohprog.com/mod_bandwidth.html e scarichiamo l'ultima versione (link diretto: | ||
ftp://ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c).<br/> | ftp://ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c).<br/> | ||
* per potre compilare questo modulo, abbiamo bisogno del pacchetto '''apache-dev'''. Per installarlo | * per potre compilare questo modulo, abbiamo bisogno del pacchetto '''apache-dev'''. Per installarlo � sufficiente dare: | ||
<pre> | <pre> | ||
# apt-get install apache-dev | # apt-get install apache-dev | ||
Riga 34: | Riga 34: | ||
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 | ||
apache viene aggiornato, infatti, il modulo appena creato | apache viene aggiornato, infatti, il modulo appena creato verr� sovrascritto con quello `vecchio`, e apache non si riavvier�... | ||
Una alternativa | Una alternativa � creare il modulo con un altro nome: | ||
<pre> | <pre> | ||
$ /usr/bin/apxs -c mod_bandwidth.c -o mod_bandwidth_new.so | $ /usr/bin/apxs -c mod_bandwidth.c -o mod_bandwidth_new.so | ||
Riga 50: | Riga 50: | ||
</pre> | </pre> | ||
Ora | Ora � necessario modificare il file '''/etc/apache/modules.conf''': la nuova direttiva da inserire, sostituendo eventualmente quella preesistente, � la seguente: | ||
<pre> | <pre> | ||
LoadModule bandwidth_module /usr/lib/apache/1.3/mod_bandwidth_new.so | LoadModule bandwidth_module /usr/lib/apache/1.3/mod_bandwidth_new.so | ||
Riga 59: | Riga 59: | ||
Ora configuriamo apache per utilizzare mod_bandwidth.<br/> | Ora configuriamo apache per utilizzare mod_bandwidth.<br/> | ||
Aggiungiamo il modulo al file '''/etc/apache/modules.conf'''. Per fare questo abbiamo due | Aggiungiamo il modulo al file '''/etc/apache/modules.conf'''. Per fare questo abbiamo due possibilit�: | ||
* modificare a mano il file, aggiungendo la seguente riga, alla finedel file: | * modificare a mano il file, aggiungendo la seguente riga, alla finedel file: | ||
<pre> | <pre> | ||
Riga 77: | Riga 77: | ||
# chmod -R 775 /tmp/apachebw | # chmod -R 775 /tmp/apachebw | ||
</pre> | </pre> | ||
(ricordiamoci che | (ricordiamoci che � possibile che qualche script ripulica la directory '''/tmp''', quindi cambiamo la posizione di queste cartelle con la direttiva BandWidthDataDir). | ||
Ecco fatto, ora con il seguente comando facciamo rileggere ad apache i file di configurazione: | Ecco fatto, ora con il seguente comando facciamo rileggere ad apache i file di configurazione: | ||
Riga 105: | Riga 105: | ||
Abilita o disabilita il modulo. | Abilita o disabilita il modulo. | ||
'''NOTA:''' Per utilizzarlo all'interno di un virtual host, | '''NOTA:''' Per utilizzarlo all'interno di un virtual host, � necessario inserire la direttiva '''BandWidthModule On''' all'interno del blocco del virtual host. Se viene attivato globalmente (cio� all'interno del file httpd.conf, fuori da ogni blocco), il modulo � attivo automaticamente in tutti i sottoblocci (Virtual Host, etc..) | ||
Riga 113: | Riga 113: | ||
'''Contesto''': per server config<br/> | '''Contesto''': per server config<br/> | ||
Modifica l'algoritmo usato per calcolare la larghezza di banda e per trasmettere i dati. Nella | Modifica l'algoritmo usato per calcolare la larghezza di banda e per trasmettere i dati. Nella modalit� normale (obsoleta), il modulo cerca di tramettere i dati in pacchetti di 1Kb. Questo vuol dire che, se la banda disponibile � di 512B, il modulo trasmette 1Kb, aspetta 2 secondi, trasmette 1Kb e cos� via... Impostando questa direttiva, verr� cambiato l'algoritmo in modo che il server | ||
aspetter� sempre lo stesso lasso di tempo, prima di trasmettere pacchetti, e la dimensione dei pacchetti varier� di conseguenza, cos� da rispettari i criteri indicati nelle altre direttive. Il valore � in microsecondi. | |||
'''Esempio:''' | '''Esempio:''' | ||
Riga 120: | Riga 120: | ||
BandWidthPulse 1000000 #1 secondo | BandWidthPulse 1000000 #1 secondo | ||
</pre> | </pre> | ||
Se oltre a questa direttiva | Se oltre a questa direttiva � presente un limite a 512B, il server trasmetter� 512B, aspetter� un secondo, trametter� 512B, aspetter� un secondo e cos� via. | ||
Riga 131: | Riga 131: | ||
Limita la banda per i file contenuti nella directory e nelle sub-directory, in base alla provenienza (dominio, ip, all). | Limita la banda per i file contenuti nella directory e nelle sub-directory, in base alla provenienza (dominio, ip, all). | ||
Gli indirizzi IP possono essere specificati anche nel formato network/netmask (Es: 192.168.0.0/21) '''<rate>''' deve essere espresso in Byte/secondo. Impostato a "0" indica nessun limite di banda. Possono essere impostati | Gli indirizzi IP possono essere specificati anche nel formato network/netmask (Es: 192.168.0.0/21) '''<rate>''' deve essere espresso in Byte/secondo. Impostato a "0" indica nessun limite di banda. Possono essere impostati pi� limiti per la stessa directory; in questo caso, � | ||
importante l'ordine con cui vengono inserite le direttive, in quando mod_bandwidth li scorre dal primo all'ultimo, fermandosi a quello che | importante l'ordine con cui vengono inserite le direttive, in quando mod_bandwidth li scorre dal primo all'ultimo, fermandosi a quello che | ||
rispecchia la situazione | rispecchia la situazione | ||
Riga 152: | Riga 152: | ||
Imposta un limite '''<rate>''' da usare quando si trasferiscono file di dimensioni uguali o maggiori a <filesize> | Imposta un limite '''<rate>''' da usare quando si trasferiscono file di dimensioni uguali o maggiori a <filesize> | ||
E' possibile utilizzare | E' possibile utilizzare pi� direttive per diverse dimensioni; anche in questo caso, se il parametro viene impostato a "0", non sar� impostato alcun limite (rimarr�, ovviamente, l'eventuale limite impostato in BandWidth). Se viene impostato a "-1", invece, saranno aboliti tutti i limiti (anche quelli impostati con la direttiva BandWidth) per i file la cui dimensione rispecchia quella direttiva. | ||
'''Esempio:''' | '''Esempio:''' | ||
Riga 160: | Riga 160: | ||
</pre> | </pre> | ||
Queste direttive portano a questa situazione: | Queste direttive portano a questa situazione: | ||
* i file | * i file pi� piccoli di 200Kb, non verranno limitati da queste direttive (rimane attiva la direttiva BandWidth); | ||
* i file di dimensione compresa tra 200Kb e 1023Kb, saranno limitati a 3072Kb/sec; | * i file di dimensione compresa tra 200Kb e 1023Kb, saranno limitati a 3072Kb/sec; | ||
* i file di dimensione maggiore di 1024Kb, saranno limitati a 2048Kb/sec. | * i file di dimensione maggiore di 1024Kb, saranno limitati a 2048Kb/sec. | ||
Riga 178: | Riga 178: | ||
'''Contesto''': per directory, .htaccess<br/> | '''Contesto''': per directory, .htaccess<br/> | ||
Imposta una banda minima per il trasferimento dei dati. Questa direttiva | Imposta una banda minima per il trasferimento dei dati. Questa direttiva pu� sovrascrivere le direttive BandWidth e LargeFileLimit, in quanto, in presenza di un numero elevato di connessioni, verr� garantita a tutte la larghezza indicata con questa direttiva, anche se il totale superer� i limiti. Il primo argomnto � da usarsi come per la direttiva BandWidth. deve essere espresso in Byte/Secondo; se viene impostato a 0, verr� usato il valore di default (256). | ||
'''Esempio :''' | '''Esempio :''' | ||
Riga 188: | Riga 188: | ||
Assumendo la presenza delle precedenti direttive analizziamo i casi in base | Assumendo la presenza delle precedenti direttive analizziamo i casi in base | ||
alle connessioni: | alle connessioni: | ||
* una connessione: | * una connessione: velocit� di trasferimento = 3072 Bytes/sec. | ||
* due connessioni: | * due connessioni: velocit� di trasferimento = 1536 Bytes/sec. | ||
* tre o | * tre o pi� connessioni: velocit� di trasferimento = 1024 Bytes/sec. | ||
Se MinBandWidth | Se MinBandWidth � impostato a "-1" accade che: | ||
* se c' | * se c'� solo una connessione, il file viene trasferito a 3072 Bytes/sec. | ||
* se ci sono una o | * se ci sono una o pi� connessioni, ogni file viene trasferito a 3072 Bytes/sec. La velocit� non dipende pi� dal numero di connessioni, ma solo dai valori delle direttive. | ||
Ovviamente, la | Ovviamente, la velocit� di trasferimento totale non potr� mai superare la vostra larghezza di banda... | ||
'''NOTA:''' | '''NOTA:''' | ||
Se ad una richiesta devono essere applicati sia un limite impostato nella direttiva "BandWidth" sia uno impostato nella direttiva "LargeFileLimit", | Se ad una richiesta devono essere applicati sia un limite impostato nella direttiva "BandWidth" sia uno impostato nella direttiva "LargeFileLimit", verr� applicato il pi� piccolo (ma mai minore a quello eventialmente indicato nella direttiva "MinBandWidth") . | ||
==Eseguiamo Apache con mod_bandwidth== | ==Eseguiamo Apache con mod_bandwidth== | ||
Per ottenere risultati, | Per ottenere risultati, � importante che non ci siano dei link morti nella directory '''link''' di mod_bandwidth, quando viene eseguito avviato il server con il modulo attivo. | ||
Potrebbe essere una buona idea, a questo scopo, eseguire lo script '''cleanlink.pl''', che provvede a rimuovere automaticamente i link morti. | Potrebbe essere una buona idea, a questo scopo, eseguire lo script '''cleanlink.pl''', che provvede a rimuovere automaticamente i link morti. | ||
Riga 211: | Riga 211: | ||
==Conclusione== | ==Conclusione== | ||
Con questo modulo | Con questo modulo � possibile, in breve tempo e con la massima semplicit�, | ||
ottimizzare la ripartizione della banda del proprio server web. Cosa | ottimizzare la ripartizione della banda del proprio server web. Cosa | ||
fondamentale per non arrivare alla saturazione della banda, cosa che | fondamentale per non arrivare alla saturazione della banda, cosa che | ||
comporterebbe lentezza nelle risposte dei vari servizi e della navigazione su | comporterebbe lentezza nelle risposte dei vari servizi e della navigazione su | ||
internet. | internet. | ||
---- [[User:MaXeR|MaXeR]] |
contributi