Tengo un problema simple: estoy usando PHP7 y Nginx y quiero decidir en el lado de PHP si la solicitud actual debe registrarse en el registro de acceso de Nginx. ¿Es posible o es demasiado tarde y la línea de registro ya se escribió antes de que PHP comience a procesar la solicitud?
Gracias por cualquier ayuda.
No es demasiado tarde. Puede usar la condición if= en la directiva access_log para controlar qué respuestas se registran.
Todo lo que necesita decidir es cómo transmitir el estado registrable de PHP a Nginx. Por ejemplo, podría usar un encabezado de respuesta personalizado (por ejemplo X-Log ).
Como prueba de concepto, lo siguiente parece funcionar:
Script PHP que no se registrará:
<?php header('X-Log: No'); phpinfo();Fragmento de configuración de Nginx:
map $sent_http_x_log $loggable { default 1; No 0; } access_log ... if=$loggable;Vea este documento para más detalles.