是否可以使用Apache / Nginx / Lighttpd过滤/编辑网页内容?

是否可以使用以下任何一种HTTP服务器:Apache,Nginx或Lighttpd作为代理进行以下操作:

  • 根据其内容(例如单词)禁止某些HTTP主体(网页)
  • 将某些内容replace为另一个内容(例如,通过正则expression式)

不仅可以使用核心function,而且可以使用模块。 另外,我可能会考虑编写自己的模块,所以如果为这些服务器编写这样一个模块是很容易的。

我知道Squid + DansGuardian / SquidGard允许这个,但我对提到的软件感兴趣。

我想我可以自己回答我的问题。 我个人最终使用Apache mod_ext_filter模块。 它允许使用自定义的程序,从标准input获取内容,并根据input输出喜欢的内容。 因此,如果input不合适,则可以通过输出诸如“Forbidden”之类的内容来禁止内容。

还有用于编辑内容的Apache模块mod_sed和mod_line_edit。

我没有使用其他服务器,但似乎像sendmoreinfobuild议,HttpSubModule可能用于Nginx。 至于lighttpd, 这个和这个答案有一些信息。

nginx股票模块ngx_http_sub_module支持简单search和replace。