Laravel 7 API部署后响应异常缓慢,如何排查是否为服务器问题?
Laravel 7 + Vue 3 API部署后响应缓慢排查问题
问题描述
使用Laravel 7和Vue 3开发的API在本地运行正常,但部署到服务器后响应异常缓慢。即使是仅返回字符串的接口,耗时也接近2秒,前端实际感知延迟约4-5秒。已完成浏览器、Postman、curl下的本地与服务器请求耗时对比测试(附相关截图),需确认问题是否由服务器导致,并获取具体排查方法。
相关代码
Vue请求代码
import axios from '@axios'; import { defineStore } from 'pinia'; export const useGanttStore = defineStore('GanttStore', { actions: { // 👉 Fetch users data fetchDatas(params) { return new Promise((resolve, reject) => { axios.get('link').then(response => resolve(response)).catch(error => reject(error)) }) },
Laravel路由代码
Route::group(['as' => 'api.', 'middleware' => 'auth:api'], function () { // Route::post('/projects-view',function(){ // return "projects-view"; // });
具体排查方法
1. 网络链路排查
- 执行
ping 你的服务器IP或traceroute 你的服务器IP(Windows用tracert),查看本地到服务器的基础网络延迟,确认是否是公网链路导致的高延迟 - 用
curl -w "DNS解析时间: %{time_namelookup}\n连接时间: %{time_connect}\n等待响应时间: %{time_starttransfer}\n总耗时: %{time_total}\n" https://你的API域名/api/projects-view多次测试,拆分请求各阶段耗时,定位是网络连接还是服务器响应的问题
2. 服务器资源排查
- 用
top命令(Linux服务器)实时查看CPU、内存、磁盘IO使用率,确认是否存在资源耗尽的情况(比如CPU占满、内存不足、磁盘读写IO过高) - 执行
df -h检查服务器磁盘空间,避免因磁盘满导致的读写阻塞
3. Laravel应用层面排查
- 临时开启服务器端的Laravel调试模式(修改
.env文件,设APP_DEBUG=true),访问接口后查看调试栏的请求耗时 breakdown,重点关注中间件执行、路由匹配、服务初始化的耗时 - 临时注释
auth:api中间件,测试无认证的接口耗时,对比判断是否是API认证环节(如JWT验证、数据库查询)导致的延迟 - 查看Laravel日志文件
storage/logs/laravel.log,检查是否存在慢查询、错误日志或未捕获的异常 - 核对服务器
.env配置:确认数据库是否为本地连接(若API与数据库不在同一服务器,会增加网络延迟);检查缓存配置(如Redis、APC)是否正确启用,本地可能已配置缓存但服务器未开启
4. Web服务器配置排查
- 检查Nginx/Apache的配置:确认是否开启gzip压缩(减少传输体积)、是否启用HTTP/2、是否有合理的超时设置
- 查看Web服务器的访问日志和错误日志,排查是否存在请求排队、连接数受限的情况
5. PHP运行环境排查
- 确认服务器PHP版本与本地一致(Laravel 7要求PHP 7.2.5+),版本差异可能导致性能差异
- 检查PHP-FPM配置:确保进程数设置合理,开启慢日志(配置
slowlog和request_slowlog_timeout参数),捕获并分析慢请求 - 确认OPcache扩展已开启并正确配置,OPcache对PHP性能提升至关重要,需保证服务器端已启用
内容的提问来源于stack exchange,提问作者kennofizet
相关产品推荐
相关产品推荐

