Apache 2.x CGI throttling module

Closed Posted Jan 17, 2007 Paid on delivery
Closed Paid on delivery

Apache module to throttle CGI requests. As you are aware, regular CGI scripts have a lot of overhead and thus consume large amount of CPU resources. I need Apache 2.2.x module which would throttle CGI requests per UID (single UID could be used by more than one vhost) and per vhost. A limit set for a vhost would take precedence over limit set per UID. For example, I would configure a UID X to run 1000 CGI scripts every 5 minutes and vhost to run 500 CGI scripts every 5 minutes. If vhost exceeds its vhost limit number within predefined timeframe, an error is displayed instead. If UID limit for user X exceeds its limit, then all vhosts which use corresponding UID would return an error. The module would track number of CGI executions within last predefined timeframe, in this example 5 minutes. For example, a vhost can make 500 executions within a minute and then won't be able to make additional executions until 4 minutes later, at which time the earlier executions would start to lapse. The execution counter must reset executions as time lapses and not in fixed intervals. For example, vhost makes 60 executions in a minute, 1 per second,

then each of these 60 exeuctions get reset every new second the following minute. Here is another example, if vhost is allowed to make 60 executions in 1 minute and is making 1 execution a second, then that vhost will be throttled to single execution a second as soon as vhost makes first 60 executions. The tracking of executions needs remain intact regardless of apache's cold/graceful restart. So that upon a restart, a sudden surge in exections does not arise. This needs to be scalable, efficient, and secure with low impact to server's resources. I'm dealing with up to 5000 vhosts and up to thousands of CGI hits per vhost, per UID per day.

## Deliverables

1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.

2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):

a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.

b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.

3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).

## Platform

FreeBSD 6.x + Apache 2.2.x

Please only bid if you have had extensive experience in apache 1.3.x/2.x module developement for Unix (specifically FreeBSD 4.x,5.x,6.x). Also, an extensive experience with using different storage algorithms to store data in shared memory for fast and efficient access. A strong understanding of overflows and security on shared hosting platforms is a must.

PHP

Project ID: #2808537

About the project

1 proposal Remote project Active Feb 22, 2007

1 freelancer is bidding on average $723 for this job

bokbokan

See private message.

$722.5 USD in 60 days
(78 Reviews)
5.2