Идея такая - перловый хендлер на начало соединения вешается
(вычисление какой-то переменной, побочный эффект - где-то сделать
пометку о начале соединения), а конец отслеживается по появлению
записи в логе.
Да, можно так.
Постоянно читать логи, обрабатывать.. почти в режиме риалтайма. При
том что конеектов будет по несколько сотен на несколько сотен
виртуалхостов.
Эти несколько сотен коннектов - на все виртуальные сервера?
Или на каждый? Тогда получаем десятки тысяч соединений с сервером.
И с учетом того что ресурсы и так все под завязку, то
это вообще получается какая-то аццкая мегамашина, для решения этой
задачи. Всеже с двумя хендлерами вариант самый помоему удачный и
простой. Перловый хендлер ложит инфу в базу... после этого post_action
и другой перловый хендлер удаляет инфу из нее.
Если perl'овый модуль выполняет длительную операцию, например, определяет
адрес по имени, соединяется с другим сервером, делает запрос к базе
данных, то на это время все остальные запросы данного рабочего процесса не
будут обрабатываться.
Вариант от Alexey Polyakov - X-Accel-Redirect + post_action -
мне кажется более жизнеспособным. Потому что общением с БД будет
заниматься другой процесс.