Ubuntu如何排查Nginx错误日志
导读:1. 定位Nginx错误日志文件 Ubuntu系统中,Nginx错误日志的默认路径为/var/log/nginx/error.log。若你为站点配置了自定义日志路径(如在/etc/nginx/sites-available/your-sit...
1. 定位Nginx错误日志文件
Ubuntu系统中,Nginx错误日志的默认路径为/var/log/nginx/error.log
。若你为站点配置了自定义日志路径(如在/etc/nginx/sites-available/your-site.conf
中通过error_log
指令修改),需以实际配置为准。
2. 实时查看错误日志
使用tail -f
命令可实时监控错误日志的最新内容,便于快速定位正在发生的错误:
sudo tail -f /var/log/nginx/error.log
若需查看最近的若干条日志(如最后50条),可使用:
sudo tail -n 50 /var/log/nginx/error.log
3. 筛选特定错误类型
通过grep
命令过滤日志中的关键字,可快速定位特定问题:
- 查看404 Not Found错误(页面不存在):
sudo tail -f /var/log/nginx/error.log | grep "404"
- 查看502 Bad Gateway错误(后端服务不可用):
sudo tail -f /var/log/nginx/error.log | grep "502"
- 查看连接超时错误:
sudo tail -f /var/log/nginx/error.log | grep "timeout"
4. 调整日志级别(可选)
Nginx的error_log
指令支持设置日志级别,控制记录的错误详细程度(从低到高):
- debug(调试信息,最详细,生产环境慎用)
- info(常规信息,如服务启动、停止)
- notice(普通通知,如配置重载)
- warn(警告,如端口占用、磁盘空间不足)
- error(错误,如请求处理失败,默认级别)
- crit(严重错误,如Nginx进程崩溃)
- alert(警报,需立即处理)
- emerg(紧急,系统不可用)
修改步骤:
① 编辑Nginx主配置文件(/etc/nginx/nginx.conf
):
sudo nano /etc/nginx/nginx.conf
② 找到error_log
指令(通常在http
块内),修改级别(如设置为warn
):
error_log /var/log/nginx/error.log warn;
③ 保存并退出,重新加载Nginx配置:
sudo nginx -s reload
④ 验证日志级别是否生效:
sudo tail -f /var/log/nginx/error.log
5. 结合其他日志交叉分析
若错误日志中的信息不足以定位问题,可结合以下日志进一步分析:
- Nginx访问日志(
/var/log/nginx/access.log
):查看请求的IP、方法、路径、状态码等,辅助判断错误来源(如大量404错误可能源于前端路由配置错误)。 - PHP-FPM错误日志(
/var/log/php-fpm.log
或/var/log/php7.x-fpm.log
):若错误与PHP脚本相关(如502错误),需检查PHP-FPM日志中的执行错误。 - 系统日志(
/var/log/syslog
或journalctl
):若错误与系统资源(如内存耗尽、磁盘空间不足)相关,可通过系统日志定位根本原因。
6. 常见问题排查示例
- Nginx无法启动:查看错误日志中的语法错误(如配置文件中括号未闭合、指令拼写错误),使用
sudo nginx -t
测试配置文件语法。 - 端口被占用:错误日志中会出现“Address already in use”提示,使用
sudo netstat -tulnp | grep :80
查看占用端口的进程,停止冲突进程或修改Nginx监听端口。 - 权限问题:错误日志中会出现“Permission denied”提示,检查Nginx进程用户(通常为
www-data
)对日志文件或网站目录的读写权限,使用sudo chown -R www-data:www-data /var/log/nginx/
修正权限。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu如何排查Nginx错误日志
本文地址: https://pptw.com/jishu/720175.html