Try this directive instead of yours to download the entire file from the backend proxy_pass http://fl008.origin.com$uri;
On 18 Sep 2014, at 15:25, shahzaib shahzaib <shahzaib...@gmail.com> wrote: > Yes, the mp4 modules is enabled on origin as well as edge. Could you please > help me resolving the issue ? > > On Thu, Sep 18, 2014 at 4:21 PM, Roman Arutyunyan <a...@nginx.com> wrote: > > On 18 Sep 2014, at 14:49, shahzaib shahzaib <shahzaib...@gmail.com> wrote: > > > Hi, > > > > We're using proxy_store on the edge server for replicating requested mp4 > > files and some of our users reported that some of the videos are half sized > > and therefore they are unable to stream whole video file on their end > > (coming from the edge server). On digging into the access_logs of nginx, i > > found the 500 internal server errors for 10~20 videos and on checking the > > size of 500 error videos it was half of the size compare to the mirrored > > video files on the origin. Please check the following error of the culprit > > video link :- > > > > 203.124.62.213 - - [18/Sep/2014:15:13:58 +0500] "GET > > /files/videos/2014/09/12/1410536044adf1b-360.mp4?start=729 HTTP/1.1" 500 > > 588 "http://lw3.files.com/files/videos/2014/09/12/" "Mozilla/4.0 > > (compatible; MSIE 8.0; Windows NT 6.0)" > > > > I'd like to inform that the issue is coming for 40% of the videos. > > > > error_log :- > > > > 2014/09/18 15:30:40 [error] 3883#0: *77490 > > "/var/www/html/files/videos/2014/09/16/141088548798bb1-360.mp4" mp4 start > > time exceeds file duration, client: 175.110.88.213, server: lw3.files.com, > > request: "GET /files/videos/2014/09/16/141088548798bb1-360.mp4?start=736.8 > > HTTP/1.1" > > > > You can see the "start time exceeds error" on edge server but the video > > link starting from start=736.8 exists on origin server. > > > > Nginx config :- > > > > server { > > > > listen 80; > > server_name lw3.files.com; > > root /var/www/html/tunefiles; > > location ~ \.(mp4|jpeg|jpg)$ { > > root /var/www/html/tunefiles; > > mp4; > > error_page 404 = @fetch; > > > > } > > > > > > location ~ \.(php)$ { > > proxy_pass http://fl008.files.net:80; > > } > > > > > > > > location @fetch { > > internal; > > proxy_pass http://fl008.origin.com:80; > > proxy_store on; > > proxy_store_access user:rw group:rw all:r; > > root /var/www/html/tunefiles; > > } > > Do you have the mp4 module enabled at the origin? If so then you have > partial mp4 > downloaded from there and stored locally. Note proxy_pass without URI passes > client URIs to the origin keeping the arguments (including “start”). > > _______________________________________________ > nginx mailing list > nginx@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx > > _______________________________________________ > nginx mailing list > nginx@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx