Доброго времени суток!
Хотелось бы узнать можно ли выполнить post_action во время разрыва соединения,
если скрипт находится на другом сервере? На одном сервере все работает
нормально: постакшен вызывается и при разрыве соединения и если файл докачался.
Но если proxy_pass ссылается на другой сервер, то постакшен вызывается только
по окончанию довнлоада.
вот конфигурация:
...
server {
listen 8085;
server_name test_local.com;
root /data/www/test_local.com;
charset windows-1251;
access_log logs/test_local.access.log;
error_log logs/test_local.error.log;
location / {
if ($uri ~ '^/(.+)/(.+)$') {
set $crypt $1;
set $file $2;
rewrite ^ /cgi-bin/download-start.cgi?to=$token&fi=$file last;
}
}
location /files {
post_action /download-stop;
}
location /download-stop {
rewrite ^
/cgi-bin/write_log.cgi?rc=$request_completion&bs=$body_bytes_sent last;
}
location /cgi-bin/ {
proxy_pass http://test_remote.com:80/cgi-bin/; # не вызывается во
время разрыва соединения
# proxy_pass http://test_local.com:80/cgi-bin/; # вызывается во
время разрыва соединения
}
}
...
=======================
сорс download_start.cgi
#!/usr/bin/perl
print "Content-type: audio/mpeg\n";
print "X-Accel-Redirect: /files/10.mp3\n\n";
заранее спасибо.