入职之后一直在忙,终于有时间整理一波最近踩到的坑。

起因:

项目是微服务架构,一个项目对外提供API,新的项目调用API获得数据。于是就在本地搭建了两个服务。配置了两个虚拟域名,指向两个项目,当然我本地是windows+nginx。意外就在这个时候发生了,我在新开发的项目中,调用另一个项目的API时,总是CURL超时,如果CURL不设置超时的话就会造成NGINX卡死。百思不得其解。

问题成因:

后来了解到原来PHP+NGINX在windows下是不支持并发的?(参考文章在这里

这个我并不敢十分的肯定,我只是觉得能理解这个东西,我们看nginx的配置文件的话,会更清楚一些,到底发生了什么:

fastcgi_pass 都绑定了9000端口

所以两个服务就会有一个端口被占用,无法返回消息。

解决方案:

第一是要把服务绑定到其他没被占用的端口,比如9009,然后切换到php-cgi所在的目录,再单独启动一个php-cgi进程,去监听这个个端口

好的,完美解决。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐