Nginx - 从记录到 access.log 中排除特定文件或文件夹

Asa*_*ter 4 logging nginx

我在 Nginx 中使用访问和错误日​​志。

我有大量的统计请求,这些请求在 access.log 中占用了太多存储空间并且不是必需的。

是否可以从记录到 access.log 中排除特定文件或文件夹?

我想排除所有请求 /stats/

server {
    listen  80 default_server;
    listen  443 ssl default_server;
    server_name ***.co.uk www.***.co.uk;

    root  /var/www/***/html;
    index index.html index.php;

    access_log /var/www/***/log/access.log;
    error_log /var/www/***/log/error.log;
}    
Run Code Online (Sandbox Code Playgroud)

Kee*_*nce 7

如果您知道哪个位置块或服务器正在处理对统计信息的请求,则可以执行此操作。只需将指令添加access_log off;到您希望禁用此功能的服务器或位置块即可。

- 编辑 -

将此位置添加到您的服务器块:

location /stats/ {
    try_files $uri $uri/ =404;
    access_log off;
}
Run Code Online (Sandbox Code Playgroud)

  • 我发现在 server 块中定义访问日志,然后尝试在 location 块中覆盖它没有任何区别。我必须在每个位置块中定义不同的访问日志规则。 (2认同)