使用 Apache2 从管道流式传输内容



是否可以编写一个 Apache2 服务,该服务可以在生成时将内容管道传输到客户端?

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

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

并立即从服务器上的构建过程中查看标准输出。

我认为以某种方式

使用 cgi 脚本是可能的,但诀窍是立即获取标准输出,绕过缓冲。如果您真的不需要 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 标头添加到你的构建脚本中。

相关内容

  • 没有找到相关文章

最新更新