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; } }