<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Can the client pull a subset of the content from the cached content?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If it can pull a subset of the content via byte range requests can you point me to how to configure nginx to allow this…?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This is what is stored in cache on the nginx server.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">[root@gemini-sled1 ac]# strings 81f71da53616b454815b570216041ac7 | more<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">KEY: GET/atis/vod/0x1051e69a101e9/d4_HDFD0075260002446163-8320285.mpg<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">HTTP/1.1 206 Partial Content<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">Server: Cisco/CDS Gateway/3.0<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">Connection: close<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">Content-Type: video/mpeg<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">Content-Length: 597600300<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">Content-Range: bytes 0-597600299/597600300<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">Cache-Control: public<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">But when the client attempt to pull a byte range the entire file is pulled.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">curl -v -o /dev/null -r 1000-1001 http://10.157.66.194/atis/vod/0x1051e69a101e9/d4_HDFD0075260002446163-8320285.mpg                           <o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">* About to connect() to 10.157.66.194 port 80<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">*   Trying 10.157.66.194... connected<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">* Connected to 10.157.66.194 (10.157.66.194) port 80<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">> GET /atis/vod/0x1051e69a101e9/d4_HDFD0075260002446163-8320285.mpg HTTP/1.1<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">> Range: bytes=1000-1001<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">> User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">> Host: 10.157.66.194<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">> Accept: */*<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">> <o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">< HTTP/1.1 206 Partial Content<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">< Server: nginx/1.9.9<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">< Date: Thu, 03 Mar 2016 18:36:05 GMT<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">< Content-Type: video/mpeg<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">< Content-Length: 597600300<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">< Connection: keep-alive<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">< Content-Range: bytes 0-597600299/597600300<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">< Cache-Control: public<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">< Link: <http://atisdemo.atge.twcable.com/atis/vod/d4_HDFD0075260002446163-8320285.mpg.mrm>; rel="http://www.iif.atis.com/c2-media-resource-metadata"<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">                                 Dload  Upload   Total   Spent    Left  Speed<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">100  569M  100  569M    0     0  3758k      0  0:02:35  0:02:35 --:--:-- 4054k<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We have nginx version 1.9.9 installed.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Nginx.conf<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">user  nginx;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">worker_processes  1;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">error_log  /var/log/nginx/error.log warn;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">pid        /var/run/nginx.pid;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">events {<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    worker_connections  1024;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">}<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">http {<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    include       /etc/nginx/mime.types;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    default_type  application/octet-stream;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">                      '$status $body_bytes_sent "$http_referer" '<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">                      '"$http_user_agent" "$http_x_forwarded_for" "$uri" "$request_uri" "$request_completion" "$cookie_session" "$http_cookie" "$http_host" "$host" "$server_port"  "$proxy_add_x_forwarded_for" ';<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    access_log  /var/log/nginx/access.log  main;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    sendfile        on;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    tcp_nopush     on;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    tcp_nodelay on;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    #keepalive_timeout  65;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_http_version 1.1;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_cache_methods GET  HEAD  POST;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_pass_request_headers on;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    fastcgi_buffers 8 160k;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    fastcgi_buffer_size 320k;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    fastcgi_connect_timeout 300;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    fastcgi_send_timeout 300;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    fastcgi_read_timeout 300;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    <o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    #proxy_cache_path /arroyo/nginxtest/sample/atis/vod levels=1:2 keys_zone=my-cache:80m
<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_cache_path /cache1 levels=1:2 keys_zone=my-cache:80m max_size=2g inactive=6000m use_temp_path=off;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    #proxy_temp_path /var/cache/tmp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    <o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_force_ranges on;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_set_header Host $host;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_set_header X-Real-IP $remote_addr;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_cache_key "$request_method$request_uri";<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_cache my-cache;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_cache_valid 200 206 1d;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_cache_valid 404 1m;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_headers_hash_max_size 51200;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_headers_hash_bucket_size 6400;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    include /etc/nginx/conf.d/*.conf;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Default.conf<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">#resolve these upstream servers in /etc/hosts<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">upstream server_array {<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">        server 10.155.202.125:80;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    } <o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">server {<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    listen 10.157.66.194:80;                  #local ip:port for nginx to listen
<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    server_name atisdemo.atge.twcable.com;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    max_ranges 4;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_force_ranges on;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    location / {<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">       limit_rate_after 10k;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">       set $limit_rate 3750k;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">       proxy_intercept_errors on;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">       proxy_pass http://server_array;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">       error_page 302 = @locationupstream;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    }<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">location @locationupstream{<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    rewrite_log on;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    set $limit_rate 3750k;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    set $upstreamlocation '$upstream_http_location';<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_set_header Range $http_range;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_set_header "User-Agent" "Cisco/CDS Gateway/3.0";<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_pass_header Server;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_pass $upstreamlocation;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    proxy_force_ranges on;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">    }<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">}<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><span style="color:#00549F">Todd Wilson</span></b><span style="font-size:8.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<br>
<hr>
<font face="Arial" color="Gray" size="1"><br>
This E-mail and any of its attachments may contain Time Warner Cable proprietary information, which is privileged, confidential, or subject to copyright belonging to Time Warner Cable. This E-mail is intended solely for the use of the individual or entity to
 which it is addressed. If you are not the intended recipient of this E-mail, you are hereby notified that any dissemination, distribution, copying, or action taken in relation to the contents of and attachments to this E-mail is strictly prohibited and may
 be unlawful. If you have received this E-mail in error, please notify the sender immediately and permanently delete the original and any copy of this E-mail and any printout.<br>
</font>
</body>
</html>