Nginx日志是网站故障排查的利器,它主要包含访问日志和错误日志两部分。本文将指导您如何利用这两类日志高效定位问题。
一、访问日志 (access log)
访问日志记录了所有对网站的请求信息,包括客户端IP、请求时间、URL、http状态码等关键数据。
常用字段说明:
- $remote_addr:客户端IP地址。
- $request_time:请求处理时间。
- $status:HTTP状态码 (例如:200, 404, 500)。
- $body_bytes_sent:发送给客户端的响应体字节数。
- $http_referer:来源页面 (用户从哪个页面跳转到当前页面)。
- $http_user_agent:客户端浏览器信息。
常见问题排查:
- 404错误:检查日志中返回404状态码的请求,确认URL是否正确,资源文件是否存在。
- 500错误:此类错误通常需要结合错误日志进行分析。
- 慢请求:利用$request_time字段筛选出处理时间过长的请求,找出瓶颈所在。
- 流量异常:统计特定时间段的访问量,识别异常流量峰值。
二、错误日志 (Error log)
错误日志记录了nginx运行过程中出现的错误信息,例如配置错误、权限问题等。
常用字段说明:
常见问题排查:
- 配置错误:检查错误日志中关于配置错误的提示,修改Nginx配置文件。
- 权限问题:查看日志中权限相关的错误,确保Nginx进程拥有足够的权限访问文件和目录。
- 模块加载失败:检查模块加载失败信息,确认所有必要模块已正确安装和加载。
三、问题排查步骤:
- 确定问题类型:首先判断是访问问题还是服务器内部错误。
- 查看相关日志:根据问题类型选择访问日志或错误日志。
- 筛选关键信息:使用grep等命令筛选特定状态码、错误信息等。
- 分析请求路径:检查访问日志中的URL,分析请求是否正确。
- 结合其他工具:必要时结合cURL、telnet等工具辅助诊断。
四、示例命令:
- 查看最近的错误日志: tail -n 100 /var/log/nginx/error.log
- 查看特定状态码 (例如404) 的访问日志: grep ‘ 404 ‘ /var/log/nginx/access.log
- 统计特定时间段的访问量: awk ‘{print $4}’ /var/log/nginx/access.log | cut -d: -f1 | sort | uniq -c | sort -nr
熟练掌握Nginx日志分析方法,将大幅提升您排查和解决网站问题的效率。