tangbinde 发表于 2017-12-23 21:40:29

在windows+nginx的curl操作请求超时的问题

  之前的项目在apache下进行本地curl操作的时候请求不会超时
  后来要在nginx下开发的时候,我在项目中写一个curl操作的test.php文件,请求相同项目下的一个index.php文件,然后curl请求超时,就是一直在转圈圈,没有返回
  然后查了一些网上的资料,http://aarons.blog.51cto.com/2383032/1583871
  里面提到,在nginx中,请求都是keep-alive的,就是我执行一个curl操作的test.php文件,这个时候php-cgi开始处理test.php,然而这个test.php还没处理完,当前的端口被占用,所以无法请求index.php
  这个index.php要等test.php处理完之后,才有不会占用当前端口,而要处理完test.php必须先处理好index.php,所以curl一直处于等待状态,程序卡死
  里面提到一个解决办法,就是
  在命令行开启一个cgi
  e:\phpstudy\php\php-5.6.27-nts\php-cgi.exe -b 127.0.0.1:9001 -c e:\phpstudy\php\php-5.6.27-nts\php.ini(不能关闭)
  然后在要进行curl请求的url的nginx配置中
location ~ \.php(.*)${         fastcgi_pass   127.0.0.1:9001;         fastcgi_indexindex.php;         fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;         fastcgi_paramPATH_INFO$fastcgi_path_info;         fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;         include      fastcgi_params;       }开启之后,不能用刚才同个项目的test.php进行curl操作,要在另一个域下创建一个新的test.php进行curl操作。测试成功。 后续再研究有没有更好的解决办法....
页: [1]
查看完整版本: 在windows+nginx的curl操作请求超时的问题