0

我正在尝试使用if语句使 nginx 的访问日志有条件,但它不起作用。

这是配置文件中的相关代码。

map $uri $log_access {

    /.lb-check 0;

    default 1;
}

server {
    ...

    access_log /var/log/nginx/access.log combined if=$log_access;

    ...
}

我不希望记录某些请求,在这种情况下,它是负载均衡器向 url 发出的请求/.lb-check

不幸的是,此配置不起作用

我也尝试过执行以下操作,但这也不起作用。

location = /.lb-check { access_log off; }

有谁知道为什么这些方法不起作用?

4

1 回答 1

0

这原来是内部构建系统的配置问题,但在解决之后我最终使用了 map 方法但使用了$request_uri参数

map $request_uri $log_access {

  /.lb-check 0;
  default 1;

}

location = /.lb-check没有工作,因为它覆盖了对该请求的处理,这意味着没有定义任何内容来服务请求(应该转到 php 处理程序)。

于 2018-05-17T10:36:59.757 回答