商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > nginx日志记录:如何记录关键操作

nginx日志记录:如何记录关键操作

  发布于2026-07-17 阅读(0)

扫一扫,手机访问

在Nginx的实际运维中,日志记录是排查问题、监控性能的关键手段。别小看那几行配置,配好了能让你少掉不少头发。下面这份指南,直接告诉你如何通过access_logerror_log两个指令,把关键操作牢牢抓在手里。

nginx日志记录:如何记录关键操作

  1. 记录访问日志

要记录访问日志,你需要在Nginx配置文件中的httpserverlocation块里设置access_log指令。举个例子:

http {
    ...
    log_format custom '$remote_addr - $remote_user [$time_local] '
                     '"$request" $status $body_bytes_sent '
                     '"$http_referer" "$http_user_agent" "$http_x_forwarded_for" '
                     '"$request_time" "$upstream_response_time" "$upstream_addr"';
    access_log /var/log/nginx/access.log custom;
    ...
}

这里定义了一个名为custom的日志格式,把请求时间、响应时间、上游地址等关键信息都塞了进去。然后指定日志文件路径,就搞定了。注意,格式里的变量可以根据实际需求裁剪,比如你更关心上游响应时间,那就保留它,去掉不用的。

  1. 记录错误日志

错误日志的配置更直接,在httpserverlocation块里设置error_log指令即可。比如:

http {
    ...
    error_log /var/log/nginx/error.log debug;
    ...
}

日志级别从低到高有debuginfowarnerrorcrit等。生产环境通常用warnerror,避免日志量过大;调试时才开debug。这个度要把握好,否则日志文件分分钟爆盘。

  1. 记录关键操作

有时候我们只想记录特定类型的请求,比如所有的404错误,而不是把所有请求都记下来。这时候可以用if指令配合access_log来实现条件记录:

server {
    ...
    location / {
        if ($status = 404) {
            access_log /var/log/nginx/404_errors.log combined;
        }
    }
    ...
}

这段配置检查每个请求的状态码,一旦命中404,就把这条请求单独写入一个日志文件。当然,if指令在Nginx里有一些性能注意事项,但用在简单条件判断上完全够用。你也可以用类似的方法捕获500、403等状态码,或者根据请求头、URL参数来做更精细的过滤。

总之,核心思路就是:用好access_logerror_log这两个指令,再结合ifmap等条件控制,就能实现日志的精准记录。配置改完后别忘了重启或重载Nginx服务,让新配置生效。

本文转载于:https://www.yisu.com/ask/20706179.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注