排查服务器上的404错误,说难不难,但路径得找对。在Linux系统里,grep就是最趁手的工具,配合日志文件,几秒钟就能把问题揪出来。不过,先得搞清楚日志文件搁在哪儿——不同Web服务器,位置不一样。
常见的情况是这样的:
Apache:
- 访问日志:
/var/log/apache2/access.log - 错误日志:
/var/log/apache2/error.log
- 访问日志:
Nginx:
- 访问日志:
/var/log/nginx/access.log - 错误日志:
/var/log/nginx/error.log
- 访问日志:
要找出那些返回404的请求,直接对着错误日志用grep就行。注意命令里要带上空格,避免匹配到其他数字组合:
Apache 环境:
grep ' 404 ' /var/log/apache2/error.log
Nginx 环境:
grep ' 404 ' /var/log/nginx/error.log
这样会把所有包含“ 404 ”的行都列出来。如果日志文件很大,或者你想实时盯着新产生的错误,可以搭配tail -f:
tail -f /var/log/apache2/error.log | grep ' 404 '
或者
tail -f /var/log/nginx/error.log | grep ' 404 '
这样新冒出来的404错误会立刻显示在屏幕上,适合排查正在发生的异常。如果只想看最近几条记录,比如前10条,那么用head截断一下:
grep ' 404 ' /var/log/apache2/error.log | head -n 10
这个命令会返回最近(按日志顺序)的10条404记录。注意,日志文件通常是按时间顺序追加的,所以用head取的是最早的一部分,如果想看最新的,换成tail会更合适。当然,具体场景灵活调整就好。