Windows环境下PHP的CURL超时问题

开发环境:Laragon(Windows+ngixn+php+mysql)
开发工具: PhpStorm

 项目中遇到这样一个问题,当项目A需要通过curl请项目B的接口时候,总是会导致504超时问题。出现这个问题的原因是php-cgi进程只有一个,项目A启动一个php-cgi处理任务时,需要请求项目B先处理任务,但是php-cgi被A占用,此时B在等待A结束,A在等待B处理完成才能继续执行,进入相互等待状态,也就是死锁,最终导致php-cgi进程超时,报504错误。

知道原因了,就好办了, Laragon集成开发环境有一个功能,可以预先设置多个php-cgi,首先进入Laragon的安装目录,在安装目录下有一个usr的目录,我们进如该目录,找到laragon.ini这个文件,打开,如下图:

在[nginx]那一项下,有一个Upstream,你可以给他设置一个值,这个值代表了Laragon会启动几个php-cgi,这里我设置的是5,那么我当启动Laragon后,会有5个php-cgi启动,这个时候你不需要重启Laragon,因为还没有完。

配置完Upstream的数量后,我们回到安装目录,进入 etc\nginx 目录,在这个目录下,打开php_upstream.conf文件,

你会看到Laragon已经帮我们配置好了我们指定数量的端口号,端口号从9001~9005,刚好5个,你可以试试设置Upstream=3,看看会有什么效果。

接下来,我们该修改nginx的虚拟主机的配置了,配置文件在安装目录下的etc\nginx\sites-enabled目录下,我们打开A项目对应的配置文件,你会看到这样的配置,这是Laragon自动给我们配置好的。

我们需要修改,修改如下:

同样的,我们B项目的配置文件修改如下:

这样做的目的是,是为了A使用9001端口号的php-cgi,项目B使用9002端口号的php-cgi,就避免了死锁。

最后重启Laragon,curl导致的504超时问题解决。

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangpeng52758

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值