From: shane <sh...@lo...> - 2003-05-31 18:28:08
|
We have the need to limit bandwidth for one of our sites on a time-interval basis (like a month). As far as I can tell, there is no way to do this from stock-slash. The thing is, the site needs to keep track of the bytes/sent, in the db, because if you're using a farm of servers, then each server's httpd would know the bytes sent, but as a group, they wouldn't. So what I'm thinking is create something like this that you'd put in a site's httpd.conf file: SlashBandwidthLimit On SlashBandwidthLimitTimePeriod Month SlashBandwidthLimitAmount 3000 and force the site to not turn accesslog off. With that, a task could run every 5 minutes, and poll for bandwidth use via the accesslog table. If it's over the limit, change apache (maybe a var/constant?) to redirect for all hits to something like overthelimit.shtml. It could also email through Slash::Message the site owner and server admin to notify that it's gone over the allocated amount. The task would also have to be aware of the total use for a time period over time. So wacking the accesslog (there's a var for that, too) would have to be removed. Then in Apache.pm's IndexHandler you'd have to have something like if ($constants->{bandwidthlimit}) { check bandwidth if >max then $r->uri("$constants->{basedir}/overlimit.shtml"); } Where I'm stuck is where to keep the count for the bandwith where site's admin (not the server admin) can see it, but cannot write to it. If someone running a site can write to the bandwidth counter, then they can reset it, and that's not good). I was wondering if anyone's inmplemented anything like this, or even thought about it before? Another way that I'm looking at is using the SlashSetVar in a site's httpd.conf file. From a quick glance at it, it looks like you can override $constants from the db with this. So you could SlashSetVar bandwidthlimit,on SalshSetVar bandwidthlimitperiod,month SlashSetVar bandwidthlimitamount,3000 What i haven't figured out is if that's overridable via admin.pl?op=vars or even throught sql. If you have any thoughts/suggestions, I'm all ears. Shane |
From: Alex M. <alex@OWAL.co.uk> - 2003-05-31 20:20:11
|
At 18:56 31/05/03, shane wrote: >We have the need to limit bandwidth for one of our sites on a time-interval >basis (like a month). Should this be done within Slashcode, or should this be entirely an Apache thing.... I would be very surprised if there isn't an Apache module to do what you want. Alex Available for java/perl/C++/web development in London, UK or nearby. Apache FOP, Cocoon, Turbine, Struts,XSL:FO, XML, Tomcat, JSP http://www.OWAL.co.uk/ |
From: shane <sh...@lo...> - 2003-05-31 23:08:27
|
On Saturday 31 May 2003 16:30, Alex McLintock wrote: > At 18:56 31/05/03, shane wrote: > >We have the need to limit bandwidth for one of our sites on a > > time-interval basis (like a month). > > Should this be done within Slashcode, or should this be entirely an Apache > thing.... I would be very surprised if there isn't an Apache module to do > what you want. Good question. I had found a few items on modules.apache.org: The best seems to be mod_throttle: <URL: http://www.snert.com/Software/mod_throttle/ > I did a search with the word 'bandwidth' on <URL: http://modules.apache.org/search > and got a number of hits. I also took a look through Krow's apache mods, because I wanted to see if he had written any that saved state at all through a restart/stop/start. The reason that I started looking at doing it w/in Slash's Apache handler is because it's already got the byte size of what's being sent - and, I thought possibly I could work it into the code similarly to Slash's panic mode - just at a higher instance in the handler. But at this point, who knows. I'm just looking for ideas and feedback :) Thanks, Shane |
From: Patrick G. <pa...@pa...> - 2003-06-01 17:29:46
|
This kind of thing, as I remember, was done at OSDN, and I'll ask the person who worked on it. Alex McLintock wrote: > At 18:56 31/05/03, shane wrote: > >> We have the need to limit bandwidth for one of our sites on a >> time-interval >> basis (like a month). > > > Should this be done within Slashcode, or should this be entirely an > Apache thing.... I would be very surprised if there isn't an Apache > module to do what you want. > > Alex > > Available for java/perl/C++/web development in London, UK or nearby. > Apache FOP, Cocoon, Turbine, Struts,XSL:FO, XML, Tomcat, JSP > http://www.OWAL.co.uk/ > > > > ------------------------------------------------------- > This SF.net email is sponsored by: eBay > Get office equipment for less on eBay! > http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5 > _______________________________________________ > Slashcode-general mailing list > Sla...@li... > https://lists.sourceforge.net/lists/listinfo/slashcode-general -- ---------------------- Patrick Galbraith Senior Software Developer pa...@pa... cap...@sl... pga...@cl... 206.719.2461 |