在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_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操作。
測試成功。
 
后續再研究有沒有更好的解決辦法....


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM