为什么本地开发时使用CURL请求本地URL会卡死-创新互联

^_^是在WIN下开发。配置是nignxphp mysql

成都创新互联公司长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为石台企业提供专业的成都网站制作、网站建设、外贸网站建设石台网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

默认时启动phpcgi是

D:\php \php-cgi.exe-b 127.0.0.1:9000 -c D:\phpfind\phpa\php.ini

先看NGINX配置

       location ~ \.php(.*)$  {            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;            fastcgi_param  PATH_INFO  $fastcgi_path_info;            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;            include        fastcgi_params;        }

NGINX中,看PHP文件块fastcig-pass的设置值(127.0.0.1:9000)。设置都是以keepalive方式请求,接收到PHP文件时,交于后端过程PHPCGI解析处理(127.0.0.1:9000),等待响应。而在本地文件以CURL请求本地环境中PHP文件时,之前的PHP还在等待CURL后的结果,这时9000端口已经被占用。导致CURL一直在处于等待状态。不设置timeout超时,程序就会卡死。结果都是false

解决方案:

新开启一个phpcgi进程设置不同端口:

例D:\php\php-cgi.exe -b 127.0.0.1:9001 -c D:\phpfind\phpa\php.ini

在需要被CURL的端口或域名设置中设置。

       location ~ \.php(.*)$  {            fastcgi_pass   127.0.0.1:9001;            fastcgi_index  index.php;            fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;            fastcgi_param  PATH_INFO  $fastcgi_path_info;            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;            include        fastcgi_params;        }

 

这样就可以请求了。但是不能请求同一个域下的文件。

这样可以在nginx中使用php-cgi负载均衡:

        upstream backend{             server 127.0.0.1:9000;             server 127.0.0.1:9001;         }         location ~ \.php(.*)$  {             fastcgi_pass   backend;             fastcgi_index  index.php;             fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;             fastcgi_param  PATH_INFO  $fastcgi_path_info;             fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;             include        fastcgi_params;         }

见效果:

为什么本地开发时使用CURL请求本地URL会卡死

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:为什么本地开发时使用CURL请求本地URL会卡死-创新互联
标题来源:http://scyanting.com/article/cediej.html