Would like to implement WebSocket support

Alexandr Gomoliako zzz at zzz.org.ua
Thu Feb 2 17:36:51 UTC 2012

On 2/2/12, André Caron <andre.l.caron at gmail.com> wrote:

> NGINX modules[2].  After initial reading, I understand that I need to write
> an Upstream (proxy) handler.  Is this correct?

Not really.

> The HTTP proxy module has a scary note that says:
>> Note that when using the HTTP Proxy Module (or even when using FastCGI),
>> the entire client request will be buffered in nginx before being passed on to
>> the backend proxied servers.
> Is this a limitation cause by NGINX's architecture, or is this by design
> (e.g. for validation of body against headers, etc.)?

It just means that you can't use existing upstream modules and
upstream interface.

> The bigger problem, however, is that there is no standard interface to
> application servers for this new WebSocket protocol.  There is some
> discussion[3] on an Apache enhancement request that basically proposes a
> modification of CGI.  Since CGI has already been demonstrated to be a
> performance problem, I'm looking for an alternate solution, maybe something
> closer to SCGI?  Anyone have suggestions?

I think what you need here is a simple protocol upgrade functionality
that switches to tcp proxying for particular connection once it
encounters upgrade in connection header. And everything else is up to
application server.
So you don't really need to parse websocket protocol in nginx unless
it is your application server.

More information about the nginx mailing list