• 在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操作。
    测试成功。
     
    后续再研究有没有更好的解决办法....
  • 相关阅读:
    less css用法思维导图
    javascript模块化编程规范
    行高:line-height图文解析
    CSS细节
    Emmet
    常见的浏览器兼容问题
    一条在没有水的环境下坚持了四年生存下来的鱼
    纪念:一高那些年
    水墨青花
    float浮动
  • 原文地址:https://www.cnblogs.com/chiruno/p/6490710.html
走看看 - 开发者的网上家园