NGINX工人还不够

我对nginx的工作人员不太熟悉,所以我需要一些帮助。 我有一个服务器上的两个网站

  • http://example.com
  • http://example-second.com

第二个是通过第一个API调用接收json数组。 这是情况。

在http://example-second.com/api_call.php文件中有

function get_curl($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, false); $result = curl_exec($curl); curl_close($curl); return $result; } $url=get_curl("http://example.com/api.php?ID=foo"); 

在http://example.com/api.php

 function get_curl_from_api($url) { $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $url, CURLOPT_HEADER=> 0, CURLOPT_RETURNTRANSFER=> 0, CURLOPT_SSL_VERIFYPEER=> 1, CURLOPT_SSL_VERIFYHOST=>2 )); $resp = curl_exec($curl); curl_close($curl); return $resp; } $url=get_curl_from_api("https://thirdpartsite.com/".$_GET["ID"]); 

有时我收到的example-second网站NULL在日志中的错误

32224#32224:10个worker_connections是不够的

我知道这是什么意思,因为在nginx.conf我有

 worker_processes auto; events { worker_connections 10; multi_accept on; use epoll; } 

我的问题是工人是如何工作的,因为这为什么会不时发生? 有一些caching或保持活动会话或什么? 另外一个问题是,可以在不增加worker_connections的情况下得到一些解决方法? 也许一些延迟curlfunction?

Nginx具有asynchronous事件驱动架构,单个worker正在处理多个连接。 worker_connections是工作进程可以同时打开的最大连接数。 不只是客户端,而且还有代理连接等。你有这个选项设置为非常低的值10.至less你应该把它重置为默认值512。