proxy_cache_path [CACHE_DIR] levels=1:2 keys_zone=[CACHE_NAME]:10m max_size=[CACHE_SIZE]g inactive=5m;

server {
        listen 80 default_server;
        server_name [CLIENT];
 
        location /nginx_status {
            stub_status on;
            allow 127.0.0.1;
            deny all;
        }

        location ~* /crossdomain.xml {
	        alias /var/www/html/crossdomain.xml;
	    }

# cache configuration for live
        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;
            # 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).*$ {
            proxy_cache [CACHE_NAME];
            proxy_pass [CACHE_PROXY_PASS_STREAM];    # http only
            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 2s;
            add_header X-Cache $upstream_cache_status;
            proxy_cache_use_stale updating;
            proxy_cache_min_uses 1;
            proxy_cache_valid 200 10s;
            # do not consider secure urls as new files
            proxy_cache_key $scheme$proxy_host$uri;
        }
          
# cache configuration for vod (old easycast stations)
	location ~* /vod/.*\.(m3u8)$ {
            proxy_cache [CACHE_NAME];
            proxy_pass [CACHE_PROXY_PASS_STREAM];    # http only
            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 7d;
            proxy_cache_valid 200 7d;
            add_header X-Cache $upstream_cache_status;
            proxy_cache_use_stale updating;
            proxy_cache_min_uses 1;
            # do not consider secure urls as new files
            proxy_cache_key $scheme$proxy_host$uri;
        }

	location ~* /vod/.*\.(ts)$ {
            proxy_cache [CACHE_NAME];
            proxy_pass [CACHE_PROXY_PASS_STREAM];    # http only
            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 7d;
            add_header X-Cache $upstream_cache_status;
            proxy_cache_use_stale updating;
            proxy_cache_min_uses 1;
            proxy_cache_valid 200 7d;
            # do not consider secure urls as new files
            proxy_cache_key $scheme$proxy_host$uri;
       }
        
# cache configuration for vod (new easycast stations 06/04/2016)
        location ~* \.(m3u8)$ {
            proxy_cache [CACHE_NAME];
            proxy_pass [CACHE_PROXY_PASS_VOD];    # http only
            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 7d;
            proxy_cache_valid 200 7d;
            add_header X-Cache $upstream_cache_status;
            proxy_cache_use_stale updating;
            proxy_cache_min_uses 1;
            # do not consider secure urls as new files
            proxy_cache_key $scheme$proxy_host$uri;
        }

        location ~* \.(ts)$ {
            proxy_cache [CACHE_NAME];
            proxy_pass [CACHE_PROXY_PASS_VOD];    # http only
            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 7d;
            add_header X-Cache $upstream_cache_status;
            proxy_cache_use_stale updating;
            proxy_cache_min_uses 1;
            proxy_cache_valid 200 7d;
            # do not consider secure urls as new files
            proxy_cache_key $scheme$proxy_host$uri;
        }
}

server {
        listen 443 ssl;
        server_name    [CLIENT];

        ssl_certificate /etc/ssl/ubicast_tv/ubicast_tv_bundle.pem;
        ssl_certificate_key /etc/ssl/ubicast_tv/ubicast_tv.key;

        location ~* /crossdomain.xml {
            alias /var/www/html/crossdomain.xml;
        }

# cache configuration for vod (25/07/2016)
        location ~* \.(m3u8)$ {
            proxy_cache [CACHE_NAME];
            proxy_pass [CACHE_PROXY_PASS_VOD];
            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 7d;
            proxy_cache_valid 200 7d;
            add_header X-Cache $upstream_cache_status;
            proxy_cache_use_stale updating;
            proxy_cache_min_uses 1;
        }

        location ~* \.(ts)$ {
            proxy_cache [CACHE_NAME];
            proxy_pass [CACHE_PROXY_PASS_VOD];
            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 7d;
            add_header X-Cache $upstream_cache_status;
            proxy_cache_use_stale updating;
            proxy_cache_min_uses 1;
            proxy_cache_valid 200 7d;
        }
}