部署Next.js+GraphQL+WordPress架构遇504网关超时求助排查
无头WordPress + Next.js 504网关超时问题排查方案
1. 检查Next.js服务运行状态与日志
- 登录Plesk面板,确认Next.js应用是否正常启动,有无频繁重启、崩溃记录
- 查看应用错误日志,重点抓取:
- GraphQL请求相关的超时报错(如
ETIMEDOUT/ECONNRESET) - 生产环境环境变量是否配置正确(确认WP GraphQL端点与本地一致)
- GraphQL请求相关的超时报错(如
- SSH登录Lightsail服务器,执行
curl -v <你的WP GraphQL端点>,模拟服务端请求,验证是否能正常返回数据并记录响应时长
2. 排查SiteGround的访问限制
- 查看SiteGround后台安全日志,确认Lightsail服务器公网IP是否被拦截
- 将Lightsail的IP加入SiteGround防火墙白名单
- 检查WPGraphQL插件的访问控制设置,确认未限制非本地IP的请求
3. 调整Plesk反向代理超时配置
- 504错误常因代理超时导致,在Plesk的「Apache & Nginx设置」中,添加/修改以下Nginx参数:
proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; fastcgi_read_timeout 60s; - 确认Plesk已将80/443端口正确转发到Next.js的运行端口(默认3000)
4. 网络深层排查
- 在Lightsail服务器执行
traceroute <你的WP域名>,检查到SiteGround的网络路径是否有节点超时、丢包 - 用
nslookup <你的WP域名>对比本地与服务器的DNS解析结果,排除缓存导致的解析错误 - 若使用SSR渲染,确认服务器端对外请求的网络权限未被限制
5. 应用代码简化测试
- 替换为极简GraphQL查询(如
{ posts { nodes { title } } }),排查是否因复杂查询导致超时 - 检查代码中是否存在不合理的请求重试逻辑,避免请求堆积
- 验证服务器端缓存策略是否生效,减少重复请求WP后端的频次
内容的提问来源于stack exchange,提问作者Sachintha
相关产品推荐
相关产品推荐

