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

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

是否可以使用以下任何 HTTP 服务器:Apache、Nginx 或 Lighttpd 作为代理来执行以下操作:

  • 根据内容(例如文字)禁止某些 HTTP 主体(网页)
  • 用另一种内容替换某些内容(例如通过正则表达式)

不仅可以使用核心功能,还可以使用模块。此外,我可能会考虑编写自己的模块,那么问题是,为这些服务器中的任何一个编写这样的模块是否容易。

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

答案1

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

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

我没有使用其他服务器,但似乎正如 sendmoreinfo 所建议的那样,HttpSubModule 可用于 Nginx。至于 lighttpd,答案有一些信息。

答案2

nginx 库存模块 ngx_http_sub_module 支持简单的搜索和替换。

相关内容