¿Hay alguna manera de registrar una identificación única por solicitud para nginx?

12

Parece que hay un par de módulos de terceros para esto

Sin embargo, si es posible, no quiero reconstruir nginx, lo cual creo que es un requisito para usar ambos módulos. Sin embargo, mi intento inicial fue usar $mseccon $pideso no funcionó (tuve un proceso para atender dos solicitudes al mismo milisegundo). He leído sobre $connectiony parece que funcionaría en conjunto con $msec. ¿Funcionará o hay una mejor manera sin usar módulos de terceros?

John
fuente

Respuestas:

10

Actualización para nginx versión v1.11 (mayo de 2016):

http://nginx.org/en/docs/http/ngx_http_core_module.html#var_request_id

Puedes usar $request_id:

Identificador único de solicitud generado a partir de 16 bytes aleatorios, en hexadecimal (1.11.0)

usuario5994461
fuente
Para la versión anterior (<= 1.2.7), puede usar algo como "$ pid- $ date_local", que debería ser lo suficientemente exclusivo para la mayoría de los usos.
Bactisme
6

Puede usar nginx-extrasy usar Perl o Lua incrustado.

$ sudo apt-get install libossp-uuid-perl

En su configuración nginx:

perl_require "Data/UUID.pm";
perl_set $request_uuid 'sub {

    my $ug = new Data::UUID;
   return $ug->create_str();
}';

Y luego por un hecho location:

proxy_set_header Request-Id $request_uuid

Estamos utilizando esto en producción y estamos muy contentos con el mejor seguimiento que tenemos en nuestros servicios de back-end.

jabley
fuente