首页 > 解决方案 > 如何将信息从 PHP-FPM 传递到 NginX 以不在访问日志中记录当前请求?

问题描述

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

谢谢你的帮助。

标签: phpnginx

解决方案


不算太晚。您可以使用指令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;

有关详细信息,请参阅此文档


推荐阅读