I have been looking for websockets support. I have written a server
push back end for nginx using the "keep-alive" module. I have one
persistent connection for the server push. this connection is an async
client control. then each new "command/request" from the client is a new
http connection. I use fcgi, because fcgi also requires a "length" a
single connection is not possible.
websockets would make make my life easier( and faster). with websockets
support nginx would become the defacto standard for web applications.
because of client/browser security using another port for websockets is
undesirable.
I am not a nginx expert but I assume that the buffering the full request
is a performance issue.
i hope to hear more about websockets
On 02/01/2012 07:54 PM, André Caron wrote:
> Hi all!
>
> I've implemented the WebSocket wire protocol as an incremental parser, making it
> suitable for use in high-end asynchronous servers such as NGINX. The code is
> open source (BSD-licenced) and available on GitHub[1]. I plan on using it to
> tunnel other protocols (svn and git, in particular) over HTTP. I have a nice
> setup that works well on the client side, but I'd like to integrate this with my
> existing NGINX stack with includes virtual hosting and a bunch of other stuff (I
> can't use another server directly unless I use a non-default port).
>
> To the best of my understanding, NGINX has no support for WebSockets. The HTTP
> proxy module does not support HTTP 1.1 and WebSockets are incompatible with both
> SCGI and FastCGI because of the "Content-Length" problem (it is assumed to be 0
> if unspecified).
>
> I'd like to implement an NGINX module that specifically handles WebSockets so
> that I can integrate my tunnel in my NGINX setup. I have absolutely no
> experience with the NGINX source code, but I've found a nice guide on writing
> NGINX modules[2]. After initial reading, I understand that I need to write an
> Upstream (proxy) handler. Is this correct?
>
> 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.)?
>
> 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?
>
> Thanks, André
>
> [1]: https://github.com/AndreLouisCaron/cwebs
> [2]: http://www.evanmiller.org/nginx-modules-guide.html [3]:
> https://issues.apache.org/bugzilla/show_bug.cgi?id=47485#c13
>
> _______________________________________________
> nginx mailing list
> nginx@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx