################################################################################################################################# # 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); }