php - 如何将信息从 PHP-FPM 传递到 NginX 以不在访问日志中记录当前请求?
问题描述
我有一个简单的问题 - 我正在使用 PHP7 和 Nginx,我想在 PHP 方面决定是否应将当前请求记录在 Nginx 的访问日志中。在 PHP 开始处理请求之前是否有可能或者为时已晚并且日志行已经写入?
谢谢你的帮助。
解决方案
不算太晚。您可以使用指令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;
有关详细信息,请参阅此文档。
推荐阅读
- r - read.delim 在 R 中没有这样的文件或目录
- html - 在 Angular 中使用掩码时 value 指令不绑定
- sql - 如何从 Athena SQL 查询中的 3 个表中获取所需的数据?
- javascript - Javascript 无法更新渐变
- python - 循环内奇怪的隐式类型转换
- node.js - 停用 Node.js 8 后 Firebase Cloud Functions 会发生什么?
- javascript - 如何将 --active 附加到 react-calendar__tile?
- angular - 如何优化此吸气剂性能问题?
- linux - 使用 netcat 模拟 http 服务器(ncat 使用 HTTP/0.9?)
- ios - 无法弄清楚我的数据在网络 Swift 中的传递位置