前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 Guzzlehttp 请求超时,报错CurlFactory.php 558 Maximum execution time of 60 seconds 问题解决

使用 Guzzlehttp 请求超时,报错CurlFactory.php 558 Maximum execution time of 60 seconds 问题解决

作者头像
躺平程序员老修
发布2023-09-05 16:21:09
5190
发布2023-09-05 16:21:09
举报
文章被收录于专栏:躺平程序员老修

背景

windows环境,nginx服务器,laravel项目,使用guzzlehttp请求自己的接口,配置过了cacert.pem,超时,但是接口确实跑成功了。

原因

php只启动了一个进程,nginx又不维护进程池,一旦出现自己请求自己,就是单线程的递归服务,发请求占用了唯一的线程,一直到超时。

解决

  1. 多启动几个php-cgi的进程:既然是windows运行,我使用的是RunHiddenConsole运行bat脚本。脚本如下,运行了3个php-cgi进程,分别监听9000,9527,9528。
代码语言:javascript
复制
@echo off
REM Windows 下无效
REM set PHP_FCGI_CHILDREN=5
 
REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000
 
echo Starting PHP FastCGI...
RunHiddenConsole D:\wamp\php-7.2.34-nts-Win32-VC15-x64\php-cgi.exe -b 127.0.0.1:9000 -c D:\wamp\php-7.2.34-nts-Win32-VC15-x64\php.ini
RunHiddenConsole D:\wamp\php-7.2.34-nts-Win32-VC15-x64\php-cgi.exe -b 127.0.0.1:9527-c D:\wamp\php-7.2.34-nts-Win32-VC15-x64\php.ini
RunHiddenConsole D:\wamp\php-7.2.34-nts-Win32-VC15-x64\php-cgi.exe -b 127.0.0.1:9528 -c D:\wamp\php-7.2.34-nts-Win32-VC15-x64\php.ini
 
echo Starting nginx...
RunHiddenConsole D:\wamp\nginx-1.16.1\nginx-1.16.1\nginx.exe -p D:\wamp\nginx-1.16.1\nginx-1.16.1
  1. 更新 nginx.conf 配置文件,负载均衡我们的三个php-cgi进程。

首先添加负载均衡:

代码语言:javascript
复制
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    client_max_body_size 1024M;

    ...

    # 这里添加配置 ↓↓↓
    upstream php_cgi_pass {
        server 127.0.0.1:9000 weight=1;
        server 127.0.0.1:9527 weight=1;
        server 127.0.0.1:9528 weight=1;
    }

    ...

之后在我们配置的server中替换:

代码语言:javascript
复制
server {
        listen       81;
        server_name  local-ts.com;
        ......
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php$ {
            try_files $uri =404;

            # 这里更改 fastcgi_pass 替换即可 ↓↓↓
            fastcgi_pass   php_cgi_pass ;

            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
  • 重启脚本,ojbk
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 原因
  • 解决
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的四七层流量分发服务,访问流量经由 CLB 可以自动分配到多台后端服务器上,扩展系统的服务能力并消除单点故障。轻松应对大流量访问场景。 网关负载均衡(Gateway Load Balancer,GWLB)是运行在网络层的负载均衡。通过 GWLB 可以帮助客户部署、扩展和管理第三方虚拟设备,操作简单,安全性强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档