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