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

Браузер (chrome, firefox) загружает статический файл медленно с nginx, а не с apache2

Я борюсь с тем фактом, что когда Nginx обслуживает файл размером 1,8 ГБ, когда я помещаю URL-адрес в Chrome или Firefox, загрузка идет со скоростью 5 МБ / с, когда я делаю это с помощью wget или curl, того же URL-адреса, того же клиента pc, загрузка идет со скоростью (мой макс.) 25 Мбит / с. Apache, обслуживающий один и тот же файл, идет со скоростью 25 МБ / с как в браузерах, так и в curl / wget. У меня вопрос: почему?

Это довольно стандартная конфигурация, я помещаю в заголовок либо X-Sendfile (apache2), либо X-Accel-Redirect (Nginx), я пробовал несколько конфигураций с nginx, я могу замедлить его с помощью limit_rate, но не вверх. Это часть моей ссылки по умолчанию в / etc / nginx / sites-enabled:

location files/ {
        internal;
        alias /var/www/html/;
        #directio 100m;
        output_buffers 2 512k;
        limit_rate 30000k;
        sendfile_max_chunk 0;

}

Я включил directio, пропустил или оставил другие параметры, включил / выключил sendfile, без разницы.

Очевидно, Apache2 автоматически заполняет заголовки для размера и типа файла, в то время как Nginx, если он не указан, использует text / html для типа, а не размер.

Итак, добавляем:

header("Content-Type: application/octet-stream");
header("Content-length: {$result[0]->size}");

Скорость загрузки увеличилась примерно в 5 раз, работая с моим макс. пропускная способность.