如何在执行cgi或停止共享库从打印到stdout时使apache跳过特定的stdout行

时间:2016-05-06 18:03:07

标签: linux apache apache2 shared-libraries dynamic-linking

我的apache服务器执行一个cgi bin并读取输出到stdout的行。问题是,每次执行cgi-bin时都会出现由于API动态库加载而导致的某些行。 Apache现在无法区分这三行来自HTTP请求以启动我的流式传输。 有一种方法可以让apache跳过阻止它工作的行或者阻止共享库打印它的负载吗?

1 个答案:

答案 0 :(得分:0)

如果您的网站每秒执行的请求少于几个,那么您可以使用一个简单的黑客攻击,通过使用shell脚本包装CGI来过滤问题行:

- 将以下代码放入新的cgi脚本中,并确保chmod +x - 通过在shell中手动运行来测试 -

#! /bin/bash
/path/to/old-cgi | egrep -v troublestring1\|troublestring2\|troublestring3 

您必须确保故障字符串足够独特,永远不会合法地出现在您的实际输出中。如果您找不到这样的字符串,则可能需要更复杂的解析脚本来代替egrep过滤器。