nginx 在不同的日志文件上记录 404

nginx 在不同的日志文件上记录 404

如何将所有网站的 404 错误汇总到一个日志中?我只知道如何在一个域名上执行此操作,并且只知道如何在更改默认 404 页面时执行此操作。

以下是我在一个域上执行的操作

    error_page 404 /404.html;
    location = /404.html {
            root /home/awesomename;
            access_log /home/custom_logs/404.log;
            internal;
    }

有没有办法在不改变其他任何东西的情况下做到这一点?

答案1

如果参数(1.7.0+)启用条件记录。如果条件计算结果为“0”或空字符串,则不会记录请求。在以下示例中,将记录响应代码为 4xx 的请求:

map $status $loggable {
    ~^[4]   1;
    default 0;
}

access_log /path/to/access.log combined if=$loggable;

答案2

您需要在所有站点配置中使用相同的内容。您可以将该location块放入单独的配置文件中,然后使用include它将其包含在所有虚拟主机中。

相关内容