![nginx 在不同的日志文件上记录 404](https://linux22.com/image/702845/nginx%20%E5%9C%A8%E4%B8%8D%E5%90%8C%E7%9A%84%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%E4%B8%8A%E8%AE%B0%E5%BD%95%20404.png)
如何将所有网站的 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
它将其包含在所有虚拟主机中。