Thanks a lot for the solution Roman, i'll get back to you after applying the fix. :-)
On Thu, Sep 18, 2014 at 6:29 PM, Roman Arutyunyan <a...@nginx.com> wrote: > > 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 >
_______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx