Я пытаюсь понять, почему мой Nginx обслуживает (инициализирует) файлы mp4 медленнее, чем PHP. Когда я обновляю (F5) страницу, на которой включен видеоплеер, мы видим, как на изображении ниже mp4 был завершен, инициализирован и готов к воспроизведению через 12 секунд.
Вот мой конфиг nginx:
keepalive_timeout 5;
sendfile on;
location /video/ {
alias /var/www/html/web/;
aio threads;
mp4;
mp4_buffer_size 1m;
mp4_max_buffer_size 5m;
secure_link $arg_md5,$arg_expires;
secure_link_md5 "$secure_link_expires$uri$hash";
if ($secure_link = "") { return 403; }
if ($secure_link = "0") { return 410; }
}
Далее для тестов я заменяю исходную ссылку в видеоплеере, сгенерированную из PHP-скрипта.
Ответ от PHP был сгенерирован фреймворком Symfony, как здесь:
public function playAction(string $webDir)
{
$response = new BinaryFileResponse($webDir . '/uploads/file.mp4');
$response->setAutoEtag();
$response->headers->set('Content-Type', 'video/mp4');
BinaryFileResponse::trustXSendfileTypeHeader();
return $response;
}
И подача mp4-видео с помощью PHP была готова к воспроизведению через 3 секунды.
Как это возможно? Nginx медленнее реагирует на статический файл mp4, чем PHP?
видео nginx php