Re: отдача больших файлов через nginx+php-fpm

Влад Максимов vladsm на mail.ru
Пн Окт 4 14:44:34 MSD 2010


Потому что не надо отдавать файлы с помощью PHP
X-Accel-Redirect вам в помощь.

> Добрый день. 
> Такая проблема:
> есть хостинг хранения файлов.
> при скачивании юзерам дается не прямая
> ссылка, а они попадают на php-скрипт,
> который берет файл и отдает его им
> как-то так:
> [code]
> $downloaded = 0;
> while(!feof($f) and !connection_status() and ($downloaded < $size))
> {
> echo fread($f, 512000);
> downloaded += 512000;
> flush();
> }
> [/code]
> А проблема вот какая.
> На apache2+mod_php все работает отлично.
> На  nginx/0.7.67+php-fpm во-первых скорость
> отдачи ниже, чем на apache, а во-вторых при
> попытке загрузить более-менее большой
> файл (мегабайт от 300 и больше) nginx
> начинает очень медленно отвечать на
> запросы или вообще впадает в ступор,
> worker process'ы жрут 100% процессора, а сам файл
> в итоге отдаваться ну никак не хочет.
> Подскажите, в какую сторону копать.




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