• 在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:phpstudyphpphp-5.6.27-ntsphp-cgi.exe -b 127.0.0.1:9001 -c e:phpstudyphpphp-5.6.27-ntsphp.ini(不能关闭)

    然后在要进行curl请求的url的nginx配置中

    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;
           }
    开启之后,不能用刚才同个项目的test.php进行curl操作,要在另一个域下创建一个新的test.php进行curl操作。
    测试成功。
     
    后续再研究有没有更好的解决办法....
  • 相关阅读:
    <mySql完全手册>2011031401
    <海量数据库解决方案>2011030801
    检索
    <mySql完全手册>2011022401
    <自己动手写操作系统>2011031601
    数据结构和算法基础
    <海量数据库解决方案>2011031001
    <自己动手写操作系统>2011032101
    Delphi方法类型
    .NET下的Login机制
  • 原文地址:https://www.cnblogs.com/chiruno/p/6490710.html
Copyright © 2020-2023  润新知