Feature request: WebSocket proxying :-)

Hi all… but mostly Igor, :wink:

I know many others have requested HTTP/1.1-to-upstream support for all
kinds
of reasons. This request is perhaps slightly more focused.

I would really like to put nginx in front of my WebSocket servers (for
which I use node.js, but there are popular Python and Ruby
implementations
too).

There are lots of good reasons to put nginx in front of a WebSocket
server:
you might want to serve static files (efficiently!) on the same port,
only
worry about SSL in nginx and not the backend, or running multiple
WebSocket
upstreams behind a load-balancing nginx frontend…

Igor, is this something you’ve considered or looked at, or would you
wait
until it made sense to do an HTTP/1.1 (to upstream) implementation?

Thanks,

  • Jeff


Ubuntu’s Bleeding Edge

 "I don't even understand offside so I'm not likely to understand a
             Manchester United contract." - Posh Spice

Jeff W. at 2010-9-12 12:58 wrote:

you might want to serve static files (efficiently!) on the same port, only
worry about SSL in nginx and not the backend, or running multiple WebSocket
upstreams behind a load-balancing nginx frontend…

Igor, is this something you’ve considered or looked at, or would you wait
until it made sense to do an HTTP/1.1 (to upstream) implementation?

How about use my nginx_tcp_proxy_module?
(GitHub - yaoweibin/nginx_tcp_proxy_module: add the feature of tcp proxy with nginx, with health check and status monitor)。

Thanks,

  • Jeff


Weibin Y.

Hello!

On Sat, Nov 26, 2011 at 08:55:46AM -0500, WGH wrote:

Bump! HTTP/1.1 proxying is now being implemented in devel version of
nginx, for unfortunately important headers like “Upgrade” and
“Connection” are still stripped/replaced.

It’s not enough to talk HTTP/1.1 to proxy WebSockets. It requires
either talking WebSockets protocol or being able to establish
opaque pipe between client and backend.

Maxim D.

Bump! HTTP/1.1 proxying is now being implemented in devel version of
nginx, for unfortunately important headers like “Upgrade” and
“Connection” are still stripped/replaced.

How about use my nginx_tcp_proxy_module?
You can’t use the same listening port with HTTP modules.
No.

Posted at Nginx Forum: