环境设置
我有 nginx 网络服务器和简单的后端应用程序。此后端应用程序在某些条件下具有自定义响应标头(例如:X-Real-Status),并且它作为上游(反向代理)在 nginx 后面运行。现在我在 nginx 配置中有 $upstream_http_x_real_status 这个自定义标头值。
我的问题是:我有两种日志格式如下:
log_format req_format '$uri $request_method $status $request_time $http_host $upstream_response_time';
log_format req_format_v2 '$uri $request_method $upstream_http_x_real_status $request_time $http_host $upstream_response_time';
我想将这两种日志格式合并为一种,因为我的自定义标头(upstream_http_x_real_status)未针对某些情况(托管事件、运行时错误等)设置,并且 req_format_v2 打印空而不是状态(响应状态为 504 Bad Gateway for例子)。我想在 nginx 配置中有这样的东西:
# DANGER: obviously syntax error
# ------------------------------
$real_status = $upstream_http_x_real_status | $status
log_format new_req_format '$uri $request_method $real_status $request_time $http_host $upstream_response_time';
如何达到这个目的呢?
这应该像一张地图一样简单: