Привет всем! Игорь, я тут придумал такую штучку... подсчет трафика и вывод его для каждого server {} или location {}. Идея в том, чтобы ввести переменную, которую можно было бы вставить в необходимый server {} или location {}, а потом выводить эту статистику через /nginx_status
Это удобно тем, что позволяет динамически считать и наблюдать трафик от отдельной директории. Особенно интересно это там, где нет ведения логов: в картинках и файлах. И не надо динамически логи парсить. Что-то типа из формата логов $bytes_sent, только постоянно ссумируется (до обнуления).
Что-то типа подобного:
Для обнуления можно ввести глобальную переменную с форматом наподобие крона (минимальный интервал обнуления сделать не минуту, а час)
час день месяц traffic_count_zero */3 * * обнуление каждые три часа
В статистике это выгладит примерно так (в байтах):
croesus:~# GET http://your-domain.com/nginx_status
Active connections: 1492 server accepts handled requests 2124355 2124355 8278635
Reading: 6 Writing: 405 Waiting: 1081 Main directory: 111111
Files: 2223334
SWF files: 8888888
Или просто имена переменных выдавать, а там пусть сами разбираются
croesus:~# GET
http://your-domain.com/nginx_status
Active connections: 1492 server accepts handled requests 2124355 2124355 8278635 Reading: 6 Writing: 405 Waiting: 1081
location[1]: 111111 location[2]: 2223334
location[3]: 8888888
Еще это интересно там, где одновременно отдается "легкая" графика сайта и огромные файлы-архивы или видеофайлы, так как они качаются долго и в логи попадают не равномерно по времени.