Загрузка больших файлов

Igor Sysoev is at rambler-co.ru
Mon Sep 5 16:10:52 MSD 2005


On Mon, 5 Sep 2005, Andrei Nigmatulin wrote:

> On Monday 05 September 2005 14:45, Igor Sysoev wrote:
>> On Mon, 5 Sep 2005, Andrei Nigmatulin wrote:
>>> При загрузке в fastcgi приложение файлов, чей размер больше
>>> client_max_body_size, nginx похоже просто закрывает соединение, не
>>> выдавая клиенту ничего. Можно ли как-то отловить эту ошибку, чтобы
>>> показать клиенту страничку с объяснениями где он не прав ?
>>
>> В каком браузере тестировалось ?
>> nginx выдаёт 413 ошибку, но вот не все браузеры умеют её показывать:
>> http://sysoev.ru/web/upload.html
>
> В Firefox 1.0.6 и Konqueror 3.4.0.
>
> Firefox выдает popup окно "Document contains no data"

У меня на старых Мозиллах работало нормально. Как обстоит с современными,
не смотрел.

> Konqueror выдает страницу с ошибкой
>
> An error occurred while loading http://xxxxx.ru/upload.phtml:
> Connection to host xxxxx.ru is broken.

А на быстром соединении (или на localhost) тоже такие же ошибки ?

> Как я понял из статьи, как только веб сервер получает от клиента
> Content-Length, он может ответить клиенту 413 и закрыть соединение на чтение,
> спровоцировав broken pipe в броузере ? А как делает nginx ?

nginx, как и Апач, делает lingering close с тем лишь отличием, что у
nginx оно настраивается:

lingering_time     30;
lingering_timeout  5;

Это значения по умолчанию. lingering_time - максимальное время
lingering close, а lingering_timeout - таймаут между двумя операциями
чтения. У Апача эти числа 30 и 2 соответственно.

Ну и ещё, Apache всегда делает lingering close, а nginx - только, если
в запросе есть Content_Length.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list