Возникла необходимость отдавать файлы nginx-ом, мне нужно точно знать, сколько
nginx отдал клиенту байтиков, и отловить тот момент, когда закачка завершена
(допустим запускать какой-то скрипт, или писать что-то куда, событие, может,
отправлять...)
Есть ли какие-то средства для этого? Или нужно писать модуль (править исходник)?
Как-то так:
location / {
set $orig_uri $uri;
set $orig_args $args;
post_action /post;
...
}
location = /post {
proxy_pass ...
proxy_set_header x-orig-url $orig_uri?$orig_args;
proxy_set_header x-sent $body_bytes_sent;
}
Но нужно учесть, что $body_bytes_sent - это количество переданных клиенту
данных с точностью до размера ядерного буфера TCP.
Игорь Сысоев
http://sysoev.ru