解决CURL 请求本地超时

首先,这样的问题只会出现在Windows+Nginx中。

php-cgi 默认使用的是9000端口,即使多个进程也并发的是9000端口


在用户访问一个php页面的时候nginx已将该进程占用,在该进程又发起http请求时,nginx发现这个仅有的进程已被占用而造成阻塞,就这样造成了死锁,一直到超时。

方法:
启动一个9001端口或其他的php-cgi进程端口。

php-cgi.exe -b 127.0.0.1:9001

在nginx的vhosts.conf 中设置server的fastcgi_pass 端口也与php_cgi 端口相同

fastcgi_pass   127.0.0.1:9001;
server {
        listen       1002;
        server_name  m.web.com ;
        root   "F:/www/yii/web";
        location / {
            index  index.html index.htm index.php;
            #autoindex  on;
            if (!-e $request_filename){
                rewrite ^/(.*) /index.php?r=$1 last;
            }
        }
        
        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;
        }
}
原文地址:https://www.cnblogs.com/dcb3688/p/4608003.html