服务器日志怎么看?Nginx/PHP/系统日志排错实战指南

Nginx/PHP/系统日志三件套排错思路
发布于
3

网站出问题的第一反应不应该是重启服务器,而是看日志——Nginx的访问日志告诉你谁在访问什么,错误日志告诉你哪里报错了。本文讲清楚服务器日志的查看方法和排错思路。

一、Nginx日志

  • 访问日志/var/log/nginx/access.log,记录每个HTTP请求的IP、时间、URL、状态码、User-Agent;
  • 错误日志/var/log/nginx/error.log,记录Nginx自身的错误和PHP-FPM通信错误。

命令行常用:

  • tail -f access.log 实时查看最新请求;
  • grep "502" access.log | tail -20 查看最近的502错误;
  • awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20 查看访问量最大的20个IP。

二、PHP错误日志

WordPress白屏?大概率是PHP报错了。Nginx返回500但没写错误日志时,去看PHP-FPM的错误日志:/var/log/php-fpm/error.log。常见问题:内存不足(memory_limit)、插件冲突(某个插件调用不存在的函数)、文件权限问题。

三、系统日志

/var/log/messagesjournalctl -xe 看系统级事件:OOM(内存不足杀进程)、磁盘IO错误、服务启动失败。

四、排错思路

  1. 网站打不开→先看Nginx错误日志和PHP错误日志;
  2. 网站慢→看访问日志找高频请求,看慢查询日志找问题SQL;
  3. 被攻击→看访问日志统计IP和URL,把攻击IP加入黑名单。

更多运维工具看极跃IP资源导航

常见问题(FAQ)

网站出问题先看哪个日志?
网站打不开看Nginx错误日志,白屏/500看PHP-FPM错误日志,被攻击看访问日志统计IP。先定位日志中的错误时间点,再查具体报错信息。
怎么实时监控Nginx访问日志?
`tail -f /var/log/nginx/access.log` 实时看请求;`grep "502" access.log` 找特定错误;`awk '{print $1}' access.log | sort | uniq -c | sort -rn ` 统计访问量最大的IP。
WordPress白屏怎么通过日志排查?
WordPress白屏通常是PHP Fatal Error,看PHP-FPM错误日志。常见原因:插件调用不存在的函数、PHP内存不足(memory_limit太小)、文件权限问题。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600