изменение исходного кода веб-сервера nginx - PullRequest
2 голосов
/ 29 ноября 2010

Я хочу изменить исходный код Nginx (http://nginx.org/download/nginx-0.7.67.tar.gz)), чтобы, когда он обслуживает файл (читает файл с диска), подсчитывал количество обслуживаемых байтов и сохранял их где-то (возможно, в базе данных), так как я не понимаю Cэто хорошо (я разработчик php) У меня проблемы с поиском этой части в исходном коде (должно быть, посмотрю какое-то время или что-то в этом роде) Кто-нибудь может мне помочь с этим? Спасибо

1 Ответ

5 голосов
/ 29 ноября 2010

Вот альтернативный подход к доступу к информации, которую вы хотите, чтобы 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)
  • автономная обработка
  • Проще и безопаснее
...