如何将信息从PHP-FPM传递到NginX,以不将当前请求记录在访问日志中?

时间:2020-03-26 06:34:07

标签: php nginx

我有一个简单的问题-我正在使用PHP7和Nginx,并且我想在PHP方面决定是否应将当前请求记录在Nginx的访问日志中。是可能还是为时已晚,在PHP开始处理请求之前已经写了日志行?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

还不算太晚。您可以在if=指令上使用access_log条件来控制记录哪些响应。

您需要决定的是如何将可记录状态从PHP传递回Nginx。例如,您可以使用自定义响应标头(例如X-Log)。

作为概念证明,以下方法似乎可行:

将不会记录的PHP脚本:

<?php 
header('X-Log: No');
phpinfo();

Nginx配置片段:

map $sent_http_x_log $loggable {
    default 1;
    No      0;
}
access_log ... if=$loggable;

有关详细信息,请参见this document