ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: При докачках(206) nginx отда ет данные с начала файла



Здравствуйте, nickolay.

Вы писали 12 декабря 2010 г., 6:31:08:

> Linux x86
> nginx version: nginx/0.8.53

> Ключевые моменты конфигурации:

> perl_require  files.pm;

> location /f {
>         perl  files::download;
> }

> Скрипт проверяет наличие файла на
> файловой системе, права доступа к
> файлу, после чего выполняет внутренний
> редирект:

$r->>allow_ranges;
$r->>header_out('Content-Length', $file_size);
$r->>send_http_header("$mime");
$r->>internal_redirect($internal_redirect_link);
> return OK;

Ну если,допустим, выставление $mime понять можно, то выставление
Content-Length, на беглый взгляд выглядит неуместным.
Хотя, я встроенный perl не использую и могу чего-то не знать.

Если делать X-Accel-Redirect, Content-Length не выставляю и докачки
успешно работают. Думаю, тут должно быть аналогично.

> Качаю с обрывами wget-ом с ключом "-c", файл
> получается правильным(совпадает md5sum  с
> оригиналом).
> Качаю Firefox-ом, также с обрывами, файл
> также скачивается, размер правильный,
> но при каждом последующем запросе за
> очередным куском файла, nginx возвращает
> начальную часть файла, хотя в ответе
> указывает правильные range и отдаваемый
> размер.

> Сделал tcpdump, сравнил запросы от wget и
> Firefox. Заметил, что Firefox шлет еще условие
> If-Range и еще вот это в заголовке перед
> указанием Range:
> X-REMOVED:.Range


-- 
С уважением,
 Pavel                          mailto:pavel2000@xxxxxx


_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.