Windows下php-cgi进程极其不稳定,此方法虽然能解决并发阻塞问题,但是不能根本上解决网站访问问题,终极解决方法参见:Nginx搭建PHP运行环境在Windows环境下php-cgi不稳定经常自动关闭xxfpm一个小巧的FastCGI进程管理器
由于支付宝小程序和头条小程序API接口不支持端口,而我的接口是通过eggjs写的,通过Nginx反向代理对外访问,Apache已经占用了80端口,所以只有换到Nginx来提供Web服务,通过Nginx+fastcgi+PHP运行网站,花了一天的时间才把运行环境搭建好,但是晚上的时候发现网站打不开了。
问题表现具体问题表现就是PHP的网站完全打不开,过会儿就是50状态,而反向代理的API服务完全没有问题,没有任何错误提示信息,日志也没有任何新记录。
重启Nginx后能暂时解决卡死的问题,但是过会儿又会出现这个问题,经过一番测试,我怀疑是不是配置的Nginx无法并发?
我访问服务A是一个请求,服务A访问服务B的接口则是第二个请求。在无法并发只能排队请求的情况下,第一个请求依赖于第二个请求的结果,第二个请求却排在后面一直等待第一个请求执行完毕。这就导致互相依赖产生死循环,并发阻塞卡死问题。
解决思路nginx以高并发闻名,怎么偏偏默认不支持并发?
谷歌找了很多关于Nginx并发的文章,挨个儿尝试设置,全都以失败告终。
无意间发现了这么一条信息:
Windows下PHP_FCGI_CHILDREN无效,参见: