diff options
Diffstat (limited to 'signaling-server/varnish.config')
-rw-r--r-- | signaling-server/varnish.config | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/signaling-server/varnish.config b/signaling-server/varnish.config new file mode 100644 index 0000000..d1d667b --- /dev/null +++ b/signaling-server/varnish.config @@ -0,0 +1,37 @@ +################################################################################################################################# +# inspired by http://serverfault.com/questions/370890/best-way-to-deploy-my-node-js-app-on-a-varnish-nginx-server/371008#371008 # +################################################################################################################################# + +# to use the signaling server behind a varnish cache server you need to define a backend for it + +backend nodejs { + .host = "127.0.0.1"; + #.host = "148.251.154.68"; + .port = "4500"; +} + + +# and also some modifications in vcl_recv + +if (req.http.Upgrade ~ "(?i)websocket") { + set req.backend = nodejs; + return (pipe); +} +if (req.http.host == "chat.lookshe.org") { + if (req.url ~ "^/socket.io/") { + set req.backend = nodejs; + return (pipe); + } +} + + +# and at least vcl_pipe + +sub vcl_pipe { + #Need to copy the upgrade for websockets to work + if (req.http.upgrade) { + set bereq.http.upgrade = req.http.upgrade; + } + set bereq.http.Connection = "close"; + return (pipe); +} |