diff --git a/6.Nginx/vhost_mediaserver-msuser.conf b/6.Nginx/vhost_mediaserver-msuser.conf index 6460466d0ce2b60e0b9a66f02294bfdb0ecf5d02..692427aded5b969a479cef456023a191a755f1f1 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;