Настройка формата ведения журнала, который включает переменные $host
и $request_time
.
Используйте этот формат регистрации в директиве местоположения.
Он полностью документирован на веб-сайте Nginx вместе со списком переменных, доступных для включения в журналы, следующее относится к блоку http и представляет собой модифицированную версию стандартного формата журнала combined
с двумя вышеупомянутыми переменными, добавленными в конец:
log_format streaming '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" $host $request_time';
Это определяет формат журнала с именем streaming
, переменная $host
, очевидно, является именем хоста из запроса клиента. $request_time
, согласно документам:
время обработки запроса в секундах с разрешением в миллисекундах;
время, прошедшее между чтением первых байтов от клиента и
запись в журнал после отправки последних байтов клиенту
Если ваше видео представляет собой CBR, вы также можете использовать $bytes_sent
для регистрации всех данных, переданных клиенту, и вычисления продолжительности видео, переданного таким образом.
Как только вы определили свой пользовательский формат журнала, затем в своем блоке местоположения для потоковой передачи вы устанавливаете директиву для запросов к этому местоположению, чтобы использовать этот формат для регистрации, как это:
access_log /path/to/log/video.log streaming;
Это просто путь для записи журнала, а streaming
- это формат журнала, который будет использоваться для этого журнала.
Теперь Nginx создаст один файл журнала, содержащий все запросы к этому местоположению, независимо от домена, который посетил клиент.
Может быть, вы бы предпочли отдельные журналы для каждого домена? Нет проблем, просто используйте переменную $host
как часть пути в вашей директиве access_log
access_log /path/to/log/$host-video.log streaming;
Теперь у каждого домена будет свой журнал. example.com-video.log, example.net-video.log и т. д.
Может быть, вы хотите оба? Нет проблем, вы можете указать несколько директив access_log
на одном уровне:
access_log /path/to/log/video.log streaming;
access_log /path/to/log/$host-video.log streaming;