$pid
Переменная $pid возвращает идентификатор (PID) рабочего процесса NGINX, обрабатывающего текущий запрос. — NGINX Core (HTTP)
Описание
Переменная $pid в NGINX предоставляет идентификатор процесса (PID) рабочего процесса, который в данный момент обрабатывает клиентский запрос. Эта переменная особенно полезна для отладки и ведения логов, позволяя администраторам определить, какой рабочий процесс обрабатывает конкретные запросы. PID инициализируется при запуске рабочих процессов NGINX и остаётся неизменным в течение всего времени жизни соответствующего рабочего процесса. Значение $pid является числовым и соответствует системно назначенному PID соответствующего рабочего процесса, что полезно в сценариях, когда необходимо логировать детальную информацию об обработке процессов. Поскольку NGINX может порождать несколько рабочих процессов, каждый из которых может одновременно обрабатывать разные запросы, переменная $pid помогает соотнести записи логов с конкретными PID, что облегчает диагностику и мониторинг. Обычно значения $pid начинаются с определённого номера и увеличиваются для каждого нового процесса, порождаемого операционной системой. Пользователи могут использовать эту переменную в настраиваемых форматах логирования, чтобы получить информацию о том, какие процессы обслуживают трафик, либо при диагностике узких мест в производительности или проблем с отдельными рабочими процессами.
Пример конфига
log_format custom_log '$remote_addr - $remote_user [$time_local] "$request" ' '"$status $body_bytes_sent "$http_referer" "-" "$http_user_agent" 'Ver: $nginx_version Pid: $pid'; access_log /var/log/nginx/access.log custom_log;
Подсистема
httpКэшируется
ДаКонтексты
http, server, location, ifПеременная $pid будет показывать соответствующую информацию только при использовании в поддерживаемом контексте, например внутри блока log или блока rewrite.
Она будет отражать PID текущего worker process, который может не соответствовать master process, что потенциально приведёт к путанице в окружениях с несколькими процессами.