Limitare banda Apache
Pentru cei care vor sa limiteze banda de internet folosita de serverul web apache pentru clienti, ca masura de precautie pentru download-ul de diverse fisiere ori pentru evitarea epuizarii vitezei de upstream se poate folosi modului mod_bw.
Acest modul poate limita viteza dupa extensie de fisier, per virtualhost, per client si/sau per total.
Pentru a citi mai multe despre acest modul aveti ca referinta urmatoarele link-uri:
root@bsdpc[~/work] # wget http://bwmod.sourceforge.net/files/mod_bw-0.7.tgz root@bsdpc[~/work] # tar zxvf mod_bw-0.7.tgz root@bsdpc[~/work] # cd mod_bw
Default modulul nu functioneaza sub apache 2.x, acesta afiseaza o eroare de forma:
httpd: Syntax error on line 57 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_bw.so into server: /usr/local/apache2/modules/mod_bw.so: Undefined symbol "apr_atomic_add"
Pentru a evita aceasta eroare editam fisierul mod_bw.c de unde stergem urmatoarele linii (liniile de la 61 pana la 68):
/* Compatibility for ARP < 1 */
#if (APR_MAJOR_VERSION < 1)
#define apr_atomic_inc32 apr_atomic_inc
#define apr_atomic_dec32 apr_atomic_dec
#define apr_atomic_add32 apr_atomic_add
#define apr_atomic_cas32 apr_atomic_cas
#define apr_atomic_set32 apr_atomic_set
#endif
Compilam si instalam modulul dupa care se modifica fisierul de configurare apache pentru a adauga limitarile dorite si se da restart la apache.
root@bsdpc[~/work/mod_bw] # /usr/local/apache2/bin/apxs -cia mod_bw.c root@bsdpc[~/work/mod_bw] # pico /usr/local/apache2/conf/httpd.conf root@bsdpc[~/work/mod_bw] # /etc/rc.d/httpd restart
Cateva exemple de configurare:
## Se adauga in sectiunea virtual host-ului ## ## Pentru limitarea fiecarui vizitator la 128KB/s pe un virtual host BandwidthModule On ForceBandWidthModule On Bandwidth all 128000 MinBandwidth all -1 ## Pentru limitarea extensiilor avi, mpg la 64KB/s BandwidthModule On ForceBandWidthModule On LargeFileLimit .avi 1 64000 LargeFileLimit .mpg 1 64000
Job Done. Enjoy!