Websocket proxying based on Sec-Websocket-Protocol

Maxim Dounin mdounin at mdounin.ru
Tue Mar 19 13:35:05 UTC 2013


On Tue, Mar 19, 2013 at 06:32:04AM -0400, gvag wrote:

> Hi guys,
> I am trying to find if it is possible to proxy a websocket request based on
> the Sec-Websocket-Protocol. More specific, is there a way to check the
> Sec-Websocket-Protocol (http://tools.ietf.org/html/rfc6455#section-11.3.4)
> header and proxy to the appropriate host/port according to this header?
> A use case would be to proxy to a SIP Connector -SIP Websocket connector-
> (specific host and port) when the Sec-Websocket-Protocol = sip.
> (http://tools.ietf.org/html/draft-ietf-sipcore-sip-websocket-03)
> I checked documentation and forums, but i cannot find any information
> relevant to this issue. As far as i can see the Sec-Websocket-Protocol
> header is not available to be used in the nginx, just the "Upgrade:
> websocket" header.

You may check Sec-Websocket-Protocol using 
$http_sec_websocket_protocol variable (see [1]) and route requests 
accordingly.  This isn't specific to websockets and hence not 
something discussed in websockets context.

[1] http://nginx.org/en/docs/http/ngx_http_core_module.html#variables

Maxim Dounin

More information about the nginx mailing list