Вот альтернативный подход к доступу к информации, которую вы хотите, чтобы nginx предоставил, и которая намного безопаснее.
Включите bytes_sent в качестве столбца в ваш журнал доступа.
Если вы ссылаетесь на HttpLogModule вы увидите, что вы можете указать bytes_sent в качестве столбца в журнале доступа.Добавьте к этому сценарий php, который анализирует файл журнала (возможно, после его поворота), и вы сможете избежать c.
log_format sampleformatname '$remote_addr - $remote_user [$time_local] '
'"$request" $status '
'"$http_referer" "$http_user_agent" "$bytes_sent"';
access_log /path/to/logs/access.log sampleformatname;
Некоторые преимущества этого подхода:
- Возможность обновления до новых версий nginx без слияния ваших изменений.
- Используйте инструменты, которые вам известны(php)
- автономная обработка
- Проще и безопаснее