Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 通过NGINX向辅助服务器异步发送头和POST数据?_Logging_Asynchronous_Nginx_Analytics - Fatal编程技术网

Logging 通过NGINX向辅助服务器异步发送头和POST数据?

Logging 通过NGINX向辅助服务器异步发送头和POST数据?,logging,asynchronous,nginx,analytics,Logging,Asynchronous,Nginx,Analytics,我希望将NGINX接收到的数据异步发送到另一台服务器,而不会导致NGINX服务请求的任何延迟 下面是详细的场景: 用户向my NGINX服务器发送请求,该服务器执行脚本并显示响应 在这两者之间,我希望将请求数据发送到另一台服务器,以便我可以操作并获得良好的日志记录和分析 NGINX不应该等待来自此服务器的响应,并且在服务用户想要的初始响应时不应该有延迟 如果需要进一步澄清,请告诉我。将数据异步发送到您可以使用的另一台服务器 然而,我们最近建立了一个使用Beanstalkd的系统。事实证明,这对处

我希望将NGINX接收到的数据异步发送到另一台服务器,而不会导致NGINX服务请求的任何延迟

下面是详细的场景:

用户向my NGINX服务器发送请求,该服务器执行脚本并显示响应

在这两者之间,我希望将请求数据发送到另一台服务器,以便我可以操作并获得良好的日志记录和分析

NGINX不应该等待来自此服务器的响应,并且在服务用户想要的初始响应时不应该有延迟


如果需要进一步澄清,请告诉我。

将数据异步发送到您可以使用的另一台服务器

然而,我们最近建立了一个使用Beanstalkd的系统。事实证明,这对处理传入请求的速度有一些负面影响。因此,我们决定直接将请求发送到另一台服务器。这一点更加一致


致以最诚挚的问候,

既然您确实希望将POST数据转发到另一台服务器,我将研究使用PHP、Lua、Ruby中的脚本。。。并执行类似以下操作(类似于PHP):

exec()
命令的命令行中的
&
在“后台”运行该命令,该命令与当前PHP实例分离。这里我展示了一个shell脚本,它可以是另一个PHP脚本,一个C程序,Lua,任何你想要的

事实上,脚本执行严格的最小操作,即共享
$\u POST
数据,然后运行脚本。(但有一点很重要,名称
“/tmp/data.json”
需要动态生成,否则当同时发生两个请求时,第一个请求的数据会粉碎另一个请求的数据,甚至它们都会同时写入文件……)


如果您计划编写自己的nginx模块,您也会这样做。处理程序将POST数据保存在一个文件中,然后使用
fork()
+
exec()
启动一个进程,在后台运行另一个脚本、C程序等等。但这需要您重新编译nginx。

相同的请求是否直接命中两台服务器?如果是,你是如何做到的?
$data = json_encode($_POST);
file_put_contents("/tmp/data.json", $data);
exec("log-data.sh&");