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

Reply via email to