From ddd544cfd88ab897c9ed14750d7c7199e91661da 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:19:39 +0100
Subject: [PATCH] math regex even if url has arguments, cache all m3u8
 playlists, refs #18898

---
 71.Install_a_cache/default | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/71.Install_a_cache/default b/71.Install_a_cache/default
index 309391d6..a2594e23 100644
--- a/71.Install_a_cache/default
+++ b/71.Install_a_cache/default
@@ -11,28 +11,32 @@ server {
         }
 
         location ~* /crossdomain.xml {
-	    alias /var/www/html/crossdomain.xml;
+	        alias /var/www/html/crossdomain.xml;
 	    }
 
 # cache configuration for live
-        location ~* /live/.*\.(m3u8)$ {
+        location ~* /live/.*\.(m3u8).*$ {
             proxy_cache [CACHE_NAME];
             proxy_pass [CACHE_PROXY_PASS_STREAM];    # http only
+            # only one request at a time will be allowed to populate a new cache element 
             proxy_cache_lock on;
             proxy_ignore_headers Cache-Control;
             proxy_ignore_headers Set-Cookie;
             proxy_ignore_headers X-Accel-Expires;
             proxy_ignore_headers Expires;
             proxy_hide_header Pragma;
-            expires 1s;
+            # instruct browser never to cache this
+            expires -1;
             add_header X-Cache $upstream_cache_status;
             proxy_cache_use_stale updating;
             proxy_cache_min_uses 1;
+            # how long should the data be kept in the cache
+            proxy_cache_valid 200 1s;
             # do not consider secure urls as new files
             proxy_cache_key $scheme$proxy_host$uri;
         }
 
-        location ~* /live/.*\.(ts)$ {
+        location ~* /live/.*\.(ts).*$ {
             proxy_cache [CACHE_NAME];
             proxy_pass [CACHE_PROXY_PASS_STREAM];    # http only
             proxy_cache_lock on;
@@ -41,7 +45,7 @@ server {
             proxy_ignore_headers X-Accel-Expires;
             proxy_ignore_headers Expires;
             proxy_hide_header Pragma;
-            expires 10s;
+            expires 2s;
             add_header X-Cache $upstream_cache_status;
             proxy_cache_use_stale updating;
             proxy_cache_min_uses 1;
@@ -61,6 +65,7 @@ server {
             proxy_ignore_headers Expires;
             proxy_hide_header Pragma;
             expires 7d;
+            proxy_cache_valid 200 7d;
             add_header X-Cache $upstream_cache_status;
             proxy_cache_use_stale updating;
             proxy_cache_min_uses 1;
@@ -97,6 +102,7 @@ server {
             proxy_ignore_headers Expires;
             proxy_hide_header Pragma;
             expires 7d;
+            proxy_cache_valid 200 7d;
             add_header X-Cache $upstream_cache_status;
             proxy_cache_use_stale updating;
             proxy_cache_min_uses 1;
@@ -145,6 +151,7 @@ server {
             proxy_ignore_headers Expires;
             proxy_hide_header Pragma;
             expires 7d;
+            proxy_cache_valid 200 7d;
             add_header X-Cache $upstream_cache_status;
             proxy_cache_use_stale updating;
             proxy_cache_min_uses 1;
-- 
GitLab