nginx日志记录:如何记录关键操作
Nginx日志通过access_log和error_log指令实现,可自定义格式记录请求时间、响应时间、客户端IP等关键信息,根据错误级别设置错误日志,利用if指令条件记录特定状态码如404错误,实现精细化日志管理,便于性能分析与故障排查。
在Nginx的实际运维中,日志记录是排查问题、监控性能的关键手段。别小看那几行配置,配好了能让你少掉不少头发。下面这份指南,直接告诉你如何通过access_log和error_log两个指令,把关键操作牢牢抓在手里。

- 记录访问日志
要记录访问日志,你需要在Nginx配置文件中的http、server或location块里设置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的日志格式,把请求时间、响应时间、上游地址等关键信息都塞了进去。然后指定日志文件路径,就搞定了。注意,格式里的变量可以根据实际需求裁剪,比如你更关心上游响应时间,那就保留它,去掉不用的。
- 记录错误日志
错误日志的配置更直接,在http、server或location块里设置error_log指令即可。比如:
http {
...
error_log /var/log/nginx/error.log debug;
...
}
日志级别从低到高有debug、info、warn、error、crit等。生产环境通常用warn或error,避免日志量过大;调试时才开debug。这个度要把握好,否则日志文件分分钟爆盘。
- 记录关键操作
有时候我们只想记录特定类型的请求,比如所有的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_log和error_log这两个指令,再结合if或map等条件控制,就能实现日志的精准记录。配置改完后别忘了重启或重载Nginx服务,让新配置生效。
AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。
AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。
AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。
StarUML 7 Windows版是一款面向软件工程、系统分析与架构设计的专业建模工具,支持UML 2、ERD、流程图、数据流图和C4模型等,可用于需求梳理、系统设计、模型验证、文档发布及代码生成。
Fender Studio Pro(原Studio One)Windows版是一套专业数字音频工作站,可完成录音、编曲、混音、母带处理与现场演出。 新版本延续Studio One的核心工作流,并加入Fender音箱与效果建模、智能创作和更现代的制作界面。
think-cell Windows版是一款集成于Microsoft PowerPoint和Excel的商业演示增强插件,提供瀑布图、甘特图、Mekko图、数据联动、自动标注及智能排版功能,适合咨询、金融、项目管理和企业汇报场景。






