sendfile

Директива `sendfile` включает или отключает использование системного вызова `sendfile()` для передачи файлов в ответ на запросы клиентов.

Синтаксисsendfile on | off;
По умолчаниюoff
Контекстhttp, server, location, if in location
Аргументыflag

Описание

Директива sendfile является частью основного HTTP-модуля NGINX и оптимизирует передачу файлов, позволяя серверу отправлять файлы непосредственно с диска в сетевое соединение без необходимости копирования данных между ядром и пользовательским пространством. Это приводит к повышению производительности и снижению загрузки CPU, особенно при отдаче статических файлов, таких как изображения, таблицы стилей или JavaScript-файлы.

Эта директива принимает один аргумент — on или off. При установке в on NGINX будет использовать функцию sendfile() для передачи файлов клиенту, что особенно полезно при работе с большими файлами. Соответственно, установка в off отключает использование этой функциональности и возвращает к более традиционным методам отправки файлов, которые могут быть менее эффективными.

Директиву sendfile можно включать в разных контекстах, таких как http, server и location, а также внутри директив if в контекстах location. Обратите внимание, что хотя включение sendfile обычно даёт лучшую производительность, важно убедиться, что конфигурация сервера и логика приложения корректно работают при использовании этой директивы, поскольку это может вызвать сложности в некоторых конфигурациях, например при работе с TLS или в отдельных сценариях логирования.

Пример конфига

http {
    sendfile on;

    server {
        listen 80;
        server_name example.com;

        location / {
            root /var/www/html;
            index index.html;
        }
    }
}

Использование sendfile с неблокирующим вводом-выводом может привести к неожиданному поведению из-за способа передачи данных.

Некоторые конфигурации, такие как проксирование или определённые модули (например, HTTP/2), могут некорректно взаимодействовать с sendfile, поэтому обязательно протестируйте производительность соответствующим образом.

← Ко всем директивам