1、一个 GraphQL API ,耗时长达 7 秒。如图1

2、在 Laravel Telescope 中查询此请求的时间,1345 ms。如图2

3、不在页面中请求 GraphQL API,而是使用 Altair GraphQL Client 单独请求,耗时 1.87 秒。与在 Laravel Telescope 中的时间大致相当。如图3

4、现在的运行环境:Windows 10、Nginx 和 PHP FastCGI。这种环境下受到限制,即一次只能服务一个 HTTP 请求。进而导致 GraphQL API 的等待时间长达 7 秒。
5、现在的 Nginx 配置如下
http {
## PHP-FPM Servers ##
upstream php-fpm {
server 127.0.0.1:9000;
}
server {
location ~ \.php$ {
# fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
6、参考:https://stackoverflow.com/questions/15819351/can-windows-php-fpm-serve-multiple-simultaneous-requests 。
7、调整 Nginx 配置如下
http {
## PHP-FPM Servers ##
upstream php-fpm {
server 127.0.0.1:9000;
}
upstream php_farm {
server 127.0.0.1:9003 weight=1;
server 127.0.0.1:9004 weight=1;
server 127.0.0.1:9005 weight=1;
server 127.0.0.1:9006 weight=1;
}
server {
location ~ \.php$ {
# fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass php_farm;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
8、需启动几个 php-cgi 进程并将它们绑定到不同的端口:9003、9004、9005、9006。如图4

9、重启 Nginx 后。如图5

10、再次在浏览器中刷新页面,查看 GraphQL API 请求时间。已经缩短至 2 秒左右。符合预期。如图6

需要长期技术维护或远程问题排查?
我是拥有 15+ 年经验的 PHP / Go 后端工程师,长期关注已有系统维护、Bug 修复、性能优化、服务器排查、WordPress 网站维护和小功能迭代。
如果你的项目遇到以下情况,可以先从一次小问题排查开始合作:
- ✅ PHP / Laravel / Yii2 老项目无人维护
- ✅ Go / Gin 后端接口需要排查或优化
- ✅ WordPress 网站访问慢、报错或插件冲突
- ✅ Nginx / MySQL / Redis / Linux 服务器异常
- ✅ CDN / Cloudflare / DNS / HTTPS 配置问题
- ✅ 需要长期远程技术支持或兼职维护
更多介绍请查看:关于我 & 合作
微信:13980074657
邮箱:shuijingwanwq@gmail.com
Telegram:@shuijingwan
GitHub:https://github.com/shuijingwan
