В том месте можно вызывать ngx_http_finalize_request().
В общем, нужно смотреть все места, откуда в нужно вызывать post_action.
Но ngx_http_close_request() - это не то место, где нужно вызывать
post_action.
в общем сделал я, что хотел :) аж глаз радуется))
вопрос такой, можно ли как-то насильно остановить текущую сессию?
речь идет о черных списках, например человек попал в такой список, и
текущую закачку нужно остановить, куда копать?
Никак.
X-Accel-Limit-Rate заработал или нет ?
Нет.
Да, для запросов, обрабатываемых через X-Accel-Redirect, X-Accel-Limit-Rate
терялся, прилагаемый патч лечит это.
Мало того, появился глюк,
директива limit_rate прекрасно резала скорость, а тут что-то случилось
ночью, ( картинка: http://alexxx.ru/tmp/nginx_status_day.png ) после
чего скорость у всех стала одинаковой...(неограниченной) количество
процессов не изменилось, PID-ы все теже...
Кто открыл 1300 соединений. Про скорость по этому графику можно судить
только ксовенно. Обычно скачок в числе соединений сопровождается уменьшением
скорости.
в error_log сразу после скачка (который на картинке) все время
проскакивали такие записи:
2006/02/11 07:00:56 [alert] 11773#0: accept() failed (24: Too many open files)
while accepting new connection on 195.208.234.158:80
потом сами собой пропали... (около 7 часов как раз у меня релоад
делается и logrotate там nginx посылается -USR1)
куда копать? где зарылся баг?
Увечить число откртых файлов - worker_rlimit_nofile.
Игорь Сысоев
http://sysoev.ru
--- src/http/ngx_http_core_module.c Mon Feb 6 17:11:02 2006
+++ src/http/ngx_http_core_module.c Sat Feb 11 13:21:28 2006
@@ -747,7 +747,9 @@
r->connection->tcp_nopush = NGX_TCP_NOPUSH_DISABLED;
}
- r->limit_rate = clcf->limit_rate;
+ if (r->limit_rate == 0) {
+ r->limit_rate = clcf->limit_rate;
+ }
if (clcf->handler) {
r->content_handler = clcf->handler;