Re: Проблема с X-Accel-Redirect на nginx с php-fpm

Антон Редозубов aredozubov на gmail.com
Пн Июн 28 16:03:51 MSD 2010


28 июня 2010 г. 15:02 пользователь Oleksandr V. Typlyns'kyi
<wangsamp at gmail.com> написал:
>
>  Если я правильно понял вопрос, то Вас смущает ответ text/html и отсутствие X-Accel-Redirect в этом случае.
>  Без -c wget не посылал в запросе Range - посмотрите как ведёт себя php-код в этом случае.
>  Скорее всего в ответ попадает часть тела(пробел, пустая строка, выдача ошибки при display_errors=On) до header().
>  Устраните это и всё должно работать, а ob_start() и ob_flush() помогут обойти случайную выдачу тела до заголовков в будущем.
>
> --
> WNGS-RIPE
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>

Спасибо за ответ, но проблема все равно не в этом (я уже начал боятся
за свое умственное здоровье, но оказалось напрасно).
wxDownloadFast прекрасно скачал тестовый файлик в 5 потоков, wget
докачал файлик. Но...

Сейчас два вопроса:
1 - если делать wget -c то все хорошо, а если wget --header="Range:
bytes=5240-" не качает, хотя заголовки почти идентичны
В первом случае:
---request begin---
GET /d/download HTTP/1.0
Range: bytes=5120-
User-Agent: curl
Accept: */*
Host: dl02.redic

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 206 Partial Content
Server: nginx
Date: Mon, 28 Jun 2010 11:19:11 GMT
Content-Type: application/octet-stream
Content-Length: 290486866
Last-Modified: Thu, 24 Jun 2010 12:53:15 GMT
Connection: close
Content-Range: bytes 5120-290491985/290491986

---response end---
206 Partial Content
Length: 290491986 (277M), 290486866 (277M) remaining [application/octet-stream]
Saving to: `download'

 0% [

                                                           ] 8,953
  1.26K/s
Во втором:
---request begin---
GET /d/download HTTP/1.0
User-Agent: curl
Accept: */*
Host: dl02.redic
Range: bytes=5120-

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 206 Partial Content
Server: nginx
Date: Mon, 28 Jun 2010 11:20:46 GMT
Content-Type: application/octet-stream
Content-Length: 290486866
Last-Modified: Thu, 24 Jun 2010 12:53:15 GMT
Connection: close
Content-Range: bytes 5120-290491985/290491986

---response end---
206 Partial Content
Closed fd 3
Retrying.

2 - каким то неведомым образом MultiGet на убунте в ответ на запрос
получает один ответ, а курл - другой
---request begin---
HEAD /d/download HTTP/1.1
User-Agent: Mozilla/4.0(compatible;MSIE 5.00;Windows 98)
Host: dl02.redic
Accept: */*
Referer: http://dl02.redic/d
Pragma: no-cache
Cache-Control: no-cache
Connection: close

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 28 Jun 2010 11:49:15 GMT
Content-Type: text/html
Connection: close
X-Powered-By: PHP/5.3.1

---response end---
А курл получается правильный ожидаемый ответ
---response begin---
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 28 Jun 2010 11:49:59 GMT
Content-Type: application/octet-stream
Content-Length: 290491986
Last-Modified: Thu, 24 Jun 2010 12:53:15 GMT
Connection: close
Accept-Ranges: bytes

---response end---

Если с MultiGet'ом все может быть из-за того, что он косит по MSIE, то
почему wget с заголовком Range не может скачать файл (при том что я
перед попыткой докачать с указанием Range восстанавливал исходный
кусок скачанного файла)?

-- 
Антон
+7 (495) 7225946
http://redozubov.ru


Подробная информация о списке рассылки nginx-ru