FastCGI multiplexing?

Igor Clark igor at pokelondon.com
Mon Jan 14 19:31:23 MSK 2008


On 14 Jan 2008, at 13:46, Manlio Perillo wrote:

> Igor Clark ha scritto:
>> Hi Igor and everyone,
>> I'm toying with some ideas for a multithreaded FastCGI application,  
>> intended to work with nginx.
>> Seems that FCGI request/connection multiplexing would be an  
>> extremely valuable feature.
>> I can't find any reference to this on the wiki, in the mailing list  
>> or on Google - I assume this is because nginx, like Apache, doesn't  
>> support FastCGI multiplexing. Is this correct? If so, are there any  
>> plans to implement it at some point in the future?
>
> As far as I know the multiplexing support in FastCGI is broken "by  
> design".
>
> Read this response one of the authors of Twisted gave me about  
> FastCGI (among other questions):
> http://twistedmatrix.com/pipermail/twisted-web/2006-April/002598.html

Thanks Manlio, that's very interesting. Lack of flow control in the  
protocol is obviously an issue for multiplexing; now that it's been  
pointed out, it seems bizarre that it should have been missed out. One  
wonders if the intention was for the application to send an HTTP 503  
over the FCGI connection in the event of overloading? I guess this  
would require a web server module to back off from overloaded  
application instances based on their HTTP status code - which seems  
like trying to patch up the shortcomings of the transport in the  
application.

It's a shame; it seemed that removing all the TCP overhead between the  
web server and the application server would be a good thing, but  
perhaps FCGI just isn't the way. I'm still just researching the area  
at the moment though so any further thoughts or experiences would be  
very welcome.

Is there any plan to implement HTTP/1.1 & keepalive connections in  
nginx's conversations with upstream servers? Can't see anything in the  
wiki or feature request list.

Cheers,
Igor

--
Igor Clark // POKE // 10 Redchurch Street // E2 7DD // +44 (0)20 7749  
5355 // www.pokelondon.com









More information about the nginx mailing list