Why doesn't nginx use sendfile with sendfile on?

228 Views Asked by At

There is following nginx.conf:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 4096;
        multi_accept on;
}

http {
        autoindex off;

        output_buffers 1 8m;
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;

        keepalive_timeout 65;
        types_hash_max_size 2048;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        gzip on;

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

I checked this with strace and nginx used a lot of write syscall, not sendfile syscall

I ran strace for all nginx workers with the following command: strace -p {ngx1} -p {ngx2} .... -e sendfile

And... There is no any output, even if I downloaded some file

I've run strace with simple C programm, witch included sendfile call and I intercepted this call in output

0

There are 0 best solutions below