$1000 Bounty for Features (or put my money where my mouth is ;)
bob at redivi.com
Thu Mar 1 05:49:22 MSK 2007
On 2/28/07, Ezra Zygmuntowicz <ezmobius at gmail.com> wrote:
> Hi Igor-
> We currently have 160 virtual servers all running nginx proxying to
> mongrel clusters and nginx is in the heart of our architecture. I
> wanted to offer to sponsor the development of 2 specific features
> that we really would like to have in nginx.
> I'd like to sponsor these features by donating $1000 US dollars to
> your efforts. Nginx is my absolute favorite webserver and it is a
> core part of our platform. These 2 features would make my life much
> easier and would benefit anyone who uses Nginx and Mongrel together.
> You would make me and a lot of others very happy people if we could
> get these features supported.
> 1. Connection rate limits for proxy backends.
> Since Rails is not threadsafe and locks the Mongrel it runs in during
> each dynamic request, it would be way better if we could limit the
> connection rate per proxy backend. RIght now nginx will continue to
> pile requests onto a mongrel even if it is busy causing requests to
> queue up in threads in mongrel waiting for their turn to lock the
> mutex and do a dispatch. I would much rather be able to set a
> connection rate of 1 or 2 per mongrel and have the requests queue in
> nginx, which is much more efficient since nginx is event driven.
> 2. A way to turn off the buffering of file uploads so that backends
> can handle the upload instead of nginx.
> I had a serious problem yesterday when a corrupted .png file was
> uploaded, I had 6 mongrel backends behind nginx, Nginx gave the
> bad .png to the first Mongrel and the bad png plus some error in the
> code caused a segfault in Mongrel. So then Nginx recovered and sent
> the same png file to the next mongrel and it segfaulted and on and
> on. So one bad file upload that caused mongrel to segfault made *all*
> the mongrel backends segfault because it retried each backend.
> I would really like a setting that that allows me to turn off the
> buffering of file uploads altogether if I want. This would allow me
> to handle upload progress in a backend as well as avert this problem
> where a bad png file can cause nginx to serve the same file to all
> backends, killing them all with segfaults. These segfaults are not
> nginx's problem I realize but having an option to turn this off will
> let me better handle this kind of thing.
> Thanks for your time Igor, and many thanks for Nginx! I hope that
> you will accept my offer ;)
Turning off upload buffering would also be something we would use for
similar (but much less dire) reasons. If I had the spare cash lying
around I'd add to the pool, but it's not yet business critical enough
for us to put a bounty on it right now.
More information about the nginx