是否可以编写一个 Apache2 服务,在生成时将内容通过管道传输到客户端?
我想设置一个简单的 http 服务来触发构建并在编译进行时立即开始向客户端发送 stdout(gcc 东西)。目标是客户可以使用例如 curl 以测试构建:
curl http://myserver.com/testbuild -F "file=@mypkg.tar.gz"
并立即从服务器上的构建过程中查看标准输出。
最佳答案
我认为这是可能的 using a cgi script ,但诀窍是立即获取标准输出,绕过缓冲。如果你真的不需要 http 作为传输协议(protocol),为什么不通过 netcat 使用直接的 tcp 流式传输呢? .
在构建服务器上运行如下脚本:
#!/bin/bash
while true ; do
nc -l -p 8080 -e /path/to/buildscript
done
当任何客户端通过
连接时nc <buildservername or ip> 8080
它会立即使构建变得坚固。
我的建议会有所不同(使用 jenkins 作为 ci 服务器,我什至在 cubietruck 上也这样做),但对于快速和小型的解决方案,它应该足够了。如果您需要 http,您甚至可以将 http header 添加到您的构建脚本中。
关于http - 使用 Apache2 流式传输内容形式管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27849975/