Для загрузки картинок в nodejs (на dev машине) использую следующий подход:
var http = require('http'),
path = require('path'),
os = require('os');
function (req, res) {
var busboy = new Busboy({ headers: req.headers });
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
var saveTo = path.join(os.tmpDir(), path.basename(fieldname));
file.pipe(fs.createWriteStream(saveTo));
});
busboy.on('finish', function() {
res.writeHead(200, { 'Connection': 'close' });
res.end("That's all folks!");
});
return req.pipe(busboy);
}
res.writeHead(404);
res.end();
}
На production сервере стоит nginx и мне нужно понять как есть настроить так, чтобы на стороне nodejs не потерялась производительность и сохранилась возможность потоковой загрузки файлов.
nginx проксирует запросы с NodeJS следующим образом:
upstream node_upstream {
server 127.0.0.1:3000;
keepalive 64;
}
server {
listen 80;
location / {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Connection "";
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_http_version 1.1;
proxy_pass http://node_upstream;
proxy_intercept_errors on;
}
}
Подскажите как правильно настроить nginx, чтобы потокового загружать файлы с помощью nodejs?