为什么本地开发时使用CURL请求本地URL会卡死
admin
2023-06-30 19:24:48
0

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

默认时启动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会卡死


相关内容

热门资讯

原创 华... 华为公布了一个名叫“韬定律”的东西。说出来你可能不信,这套新玩法,要把西方称霸了60年的芯片底层逻辑...
原创 华... 在华为畅享90 Plus和90 Pro Max取得出众的市场成绩之后,有消息指出,华为畅享90系列接...
一颗流星在美国马萨诸塞州上空爆... 当地时间5月30日,一颗流星在美国东北部马萨诸塞州近海上空爆炸,并引发巨响。该州多地居民均听到爆炸声...
鸿蒙智家框架合作协议签约仪式在... 5月29日,鲁班兄弟装饰工程有限公司与华为终端有限公司在华为云南区域总部举行鸿蒙智家框架合作协议签约...
中国科学院工程热物理所在超临界... 以超临界二氧化碳(S-CO₂)为代表的新型超临界流体正以其独特优势,在制冷、发电、储能等领域拓展应用...
5月31日,“蓝月亮”上线 5月31日,农历四月十五,一轮满月将现身夜空。这轮满月有些特别,它是本月第二次满月,同时它又是本年度...
原创 华... 华为在6月份的新品越来越丰富,比如智能手机、智能手表、耳夹式耳机、新一代全屋智能等,覆盖到多场景。其...
伊朗称对霍尔木兹海峡航运实施全... 据伊朗方面当地时间5月30日消息,伊朗武装部队哈塔姆安比亚中央总部说,伊朗对霍尔木兹海峡航运实施全面...
13人遇难“致命黑车”调查:座... 5月28日凌晨,一辆载满河南邓州周边等地乘客的大通客车,从浙江杭州出发赶回邓州,经过G40沪陕高速河...
多地职校招生报名火爆 作者 | 第一财经 林靖职业教育正在成为越来越多人的“主动选择”,中职赛道不再是备选项。近日,北京中...