aboutsummaryrefslogtreecommitdiffstats
path: root/signaling-server/varnish.config
diff options
context:
space:
mode:
Diffstat (limited to 'signaling-server/varnish.config')
-rw-r--r--signaling-server/varnish.config37
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);
+}