From 4b44c7c304d72f4e3a2bd4eca42a797bb8fe75fc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florent=20Thi=C3=A9ry?= <florent.thiery@ubicast.eu>
Date: Thu, 19 Jan 2017 18:17:32 +0100
Subject: [PATCH] use caching in msuser vhost, fixes #18553

---
 6.Nginx/vhost_mediaserver-msuser.conf | 29 +++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/6.Nginx/vhost_mediaserver-msuser.conf b/6.Nginx/vhost_mediaserver-msuser.conf
index 6460466d..692427ad 100644
--- a/6.Nginx/vhost_mediaserver-msuser.conf
+++ b/6.Nginx/vhost_mediaserver-msuser.conf
@@ -1,3 +1,6 @@
+# for a 20 Mbits/s stream, we want to keep maybe 10s of video, 40 streams means 1 GB
+proxy_cache_path /tmp levels=1:2 keys_zone=livecache:10m max_size=2g inactive=30s;
+
 geo $msuser_whitelist {
 	default 0;
 	127.0.0.1 1;
@@ -54,8 +57,30 @@ server {
 		add_header Pragma public;
 		add_header Cache-Control "public";
 	}
-	location /streaming/ {
-		proxy_pass http://localhost:1935/live/;
+	location ~ ^/streaming/.*\.m3u8.*$ {
+			rewrite ^/streaming/(.*)$ /live/$1 break;
+			proxy_pass http://localhost:1935;
+			proxy_cache livecache;
+			proxy_cache_lock on;
+			expires -1;
+			proxy_cache_min_uses 1;
+			proxy_cache_valid 200 1s;
+			add_header X-Cache $upstream_cache_status;
+			add_header Access-Control-Allow-Origin "*";
+			proxy_cache_key $scheme$proxy_host$uri;
+			proxy_cache_use_stale updating;
+	}
+	location ~ /streaming/.*\.(ts).*$ {
+			rewrite ^/streaming/(.*)$ /live/$1 break;
+			proxy_pass http://localhost:1935;
+			proxy_cache livecache;
+			proxy_cache_lock on;
+			expires 2s;
+			proxy_cache_min_uses 1;
+			proxy_cache_valid 200 10s;
+			add_header X-Cache $upstream_cache_status;
+			add_header Access-Control-Allow-Origin "*";
+			proxy_cache_key $scheme$proxy_host$uri;
 	}
 	location / {
 		uwsgi_pass unix:///home/msuser/mstmp/uwsgi.sock;
-- 
GitLab