使用Apache2流式传输内容管道

时间:2015-01-08 21:39:06

标签: http stream apache2 pipe

是否有可能编写一个Apache2服务,可以将内容传递给正在生成的客户端?

我想设置一个简单的http服务来触发构建,并在编译过程中立即开始向客户端发送stdout(gcc stuff)。目标是客户可以使用例如curl测试构建:

curl http://myserver.com/testbuild -F "file=@mypkg.tar.gz"

立即从服务器上的构建过程中看到stdout。

1 个答案:

答案 0 :(得分:1)

我认为有可能以某种方式using a cgi script,但诀窍是立即获得stdout,绕过缓冲。如果您不需要http作为传输协议,为什么不通过netcat使用直接tcp流。

在构建服务器上运行如下脚本:

#!/bin/bash
while true ; do
nc -l -p 8080 -e /path/to/buildscript
done

当任何客户通过

连接时
nc <buildservername or ip> 8080

它会立即获得构建结果。

我的建议会有所不同(使用jenkins作为ci服务器,我甚至在立体声中也这样做),但对于快速小巧的解决方案,它应该足够了。如果您需要http,您甚至可以将http头添加到构建脚本中。