Назад | Перейти на главную страницу

Файлы ZIP на Apache 2.4 с HTTP / 2 не загружаются примерно через 6 МБ

Я пытаюсь настроить сервер Apache 2.4.25 (Debian 9.7) для обслуживания файлов через HTTP / 2.

Все файлы HTML, CSS, JS и изображения обслуживаются правильно.

Однако я сталкиваюсь с трудностями с файлами большего размера, например с ZIP-файлом размером 58 МБ (60639199 b):

https://www.scan2docx.com/img/document_scanner_samples.zip

Загрузка этого файла через HTTP / 1.1 работает точно так, как ожидалось. Вот выдержка из журнала доступа Apache:

x.x.x.x - - [08/Feb/2019:08:11:05 +0100] "GET /img/document_scanner_samples.zip HTTP/1.1" 200 60752807 "-" "Wget/1.18 (linux-gnu)"

Однако при загрузке через HTTP / 2 в Chrome возвращается следующая ошибка:

Failed - network error

А в FireFox:

Failed

Вот выдержка из журнала доступа Apache:

x.x.x.x - - [08/Feb/2019:08:02:08 +0100] "GET /img/document_scanner_samples.zip HTTP/2.0" 200 60639199 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0"    

Журналы ошибок Apache не содержат информации примерно того же времени.

Если несколько раз нажать кнопку «возобновить» в веб-браузере, можно в конечном итоге загрузить все 58 МБ ZIP-файла.

Может показаться, что ZIP-файл загружается кусками по 6 МБ каждый раз, когда нажимается «возобновить». Вот размеры файлов из Chrome:

"Unconfirmed 149963.crdownload"  6282112 b
"Unconfirmed 867419.crdownload" 12564224 b
"Unconfirmed 121076.crdownload" 18846336 b
"Unconfirmed 499937.crdownload" 25128448 b
"Unconfirmed 249798.crdownload" 31410560 b
"Unconfirmed 631305.crdownload" 37692672 b 
"Unconfirmed 871992.crdownload" 43974784 b

Может ли кто-нибудь объяснить, что здесь происходит?

И сделать несколько предложений, как я могу решить эту проблему?


ОБНОВЛЕНИЕ: результаты тестов с использованием curl 7.64.0.

Используя curl с поддержкой HTTP2, я мог правильно загружать файлы ZIP через HTTP / 1.1 и HTTP2.

Я использовал следующие команды:

/usr/local/bin/curl -vs --http1.1 -o via_http_1_1.zip https://www.scan2docx.com/img/document_scanner_samples.zip &> /dev/stdout | tee -a via_http_1_1.txt

/usr/local/bin/curl -vs --http2   -o via_http_2.zip   https://www.scan2docx.com/img/document_scanner_samples.zip &> /dev/stdout | tee -a via_http_2.txt

Записи в Apache access.log следующие:

x.x.x.x - - [08/Feb/2019:12:37:24 +0100] "GET /img/document_scanner_samples.zip HTTP/1.1" 200 60752588 "-" "curl/7.64.0"
x.x.x.x - - [08/Feb/2019:12:37:37 +0100] "GET /img/document_scanner_samples.zip HTTP/2.0" 200 60639199 "-" "curl/7.64.0"

Скачанные ZIP-файлы выглядят следующим образом:

-rw-r--r--  1 x x 60639199 Feb  8 12:37 via_http_1_1.zip
-rw-r--r--  1 x x 60639199 Feb  8 12:37 via_http_2.zip

Файл журнала HTTP / 1.1: https://www.scan2docx.com/img/via_http_1_1.txt

Файл журнала HTTP / 2: https://www.scan2docx.com/img/via_http_2.txt

Однако в веб-браузерах, всех операционных системах загрузка по-прежнему не выполняется.

Что дает?