Need help: websocket proxy stops working after a while

Maxim Dounin mdounin at
Fri Apr 4 10:36:49 UTC 2014


On Fri, Apr 04, 2014 at 04:20:04AM -0400, phil3361 wrote:

> Hi all,
> The WebSocket protocol specification (RFC 6455) defines a _protocol_level_
> keep alive fonctionnality (the protocol defines both a 'ping' and a 'pong'
> frame).
> Unfortunately, it seems that nginx doesn't take these frames into account to
> reset its timeout watchdog timer so far... so that you have to implement
> some _application_level_ heartbeat mecanism if you don't want your WebSocket
> connection be broken by an intermediate nginx on low activity periods...
> This is ennoying: such application work has a quite heavy resource cost,
> especially on the server side. This looses some of the most valuable
> benefits of a WebSocket connection: maintaining an active asynchronous
> notification channel from the server to the client, just in case...

You are understanding it wrong.

Any ping/pong frame, as well as any other frame in a proxied 
websocket connection, will reset nginx timeouts.  Note that first 
my response suggests "periodic ping frames from the backend" as 
one of the possible solutions.

Maxim Dounin

More information about the nginx mailing list