猿问

两个客户端之间的 CURL 请求因超时而失败

我有两个应用程序,一个 API 及其在 Windows 上的客户端,带有 Nginx 和带有 Fastcgi 的 PHP 7.1。当我从我的 API 向我的客户端或从我的客户端向我的 API 发送 CURL 请求时,它可以正常工作。


另一方面,如果 API 向客户端发送请求,客户端也向 API 发送请求,则情况不再如此。我的第一个请求将在 30 秒后超时,在此期间我无法向客户端发送并行请求。他们都会超时,直到第一个结束。


到目前为止我尝试过的:


我将此添加到我的 Nginx 配置中

     fastcgi_read_timeout 120s;

        upstream  php-cgi  {

            server   127.0.0.1:9000 max_conns=5 weight=1 max_fails=0 fail_timeout=30s;

            server   127.0.0.1:9001 max_conns=5 weight=1 max_fails=0 fail_timeout=30s;

            server   127.0.0.1:9002 max_conns=5 weight=1 max_fails=0 fail_timeout=30s;

            server   127.0.0.1:9003 max_conns=5 weight=1 max_fails=0 fail_timeout=30s;

            server   127.0.0.1:9004 max_conns=5 weight=1 max_fails=0 fail_timeout=30s;

            server   127.0.0.1:9005 max_conns=5 weight=1 max_fails=0 fail_timeout=30s;

            server   127.0.0.1:9006 max_conns=5 weight=1 max_fails=0 fail_timeout=30s;

            server   127.0.0.1:9007 max_conns=5 weight=1 max_fails=0 fail_timeout=30s;

            server   127.0.0.1:9008 max_conns=5 weight=1 max_fails=0 fail_timeout=30s;

            server   127.0.0.1:9009 max_conns=5 weight=1 max_fails=0 fail_timeout=30s;

            server   127.0.0.1:9012 max_conns=5 weight=1 max_fails=0 fail_timeout=30s;

        }

以下是我使用的 CURL 选项:


CURLOPT_RETURNTRANSFER => true,

CURLOPT_HEADER => true,

CURLINFO_HEADER_OUT => true,

CURLOPT_ENCODING => '',

CURLOPT_MAXREDIRS => 10,

CURLOPT_TIMEOUT => 30,

CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,

CURLOPT_URL=> MY_URL,

CURLOPT_POSTFIELDS=> MY_DATA,

CURLOPT_CUSTOMREQUEST=> MY METHOD,

CURLOPT_HTTPHEADER=> MY HEADERS

这是我启动服务器的方式:


c:\nginx\RunHiddenConsole.exe c:\nginx\php-7.1\php-cgi.exe -b 127.0.0.1:9005 -c c:\nginx\php-7.1\php.ini

c:\nginx\RunHiddenConsole.exe c:\nginx\php-7.1\php-cgi.exe -b 127.0.0.1:9007 -c c:\nginx\php-7.1\php.ini

c:\nginx\RunHiddenConsole.exe c:\nginx\nginx.exe


繁星点点滴滴
浏览 245回答 1
1回答
随时随地看视频慕课网APP
我要回答