Squid Web Cache Wiki

Squid Web Cache 文档

🔗 功能:ICAP (Internet Content Adaptation Protocol)

🔗 背景

Internet Content Adaptation Protocol (RFC 3507, subject to errata) 规定了 HTTP 代理(ICAP 客户端)如何将内容适配委托给外部 ICAP 服务器。包括 Squid 在内的大多数流行代理都支持 ICAP。如果您的适配算法驻留在 ICAP 服务器中,它将能够在各种环境中工作,并且不依赖于单一的代理项目或供应商。使用 ICAP 进行大多数内容适配不需要修改代理代码。

一个代理可以访问多个 ICAP 服务器,一个 ICAP 服务器也可以被多个代理访问。ICAP 服务器可以驻留在与 Squid 相同的物理机上,也可以运行在远程主机上。根据配置和上下文,某些 ICAP 故障可以被绕过,从而对代理最终用户不可见。

🔗 ICAP 服务器

虽然从头开始编写另一个 ICAP 服务器总是可能的,但以下 ICAP 服务器可以进行修改以支持您需要的适配。一些 ICAP 服务器甚至接受自定义适配模块或插件。

以上列表并非详尽无遗,也不代表认可。任何 ICAP 服务器在您的适配项目上下文中都将具有独特的优缺点。

有关 ICAP 的更多信息可在 ICAP 论坛上找到。

🔗 Squid 详细信息

Squid-3.0 及更高版本内置了 ICAP 支持。支持预缓存的 REQMOD 和 RESPMOD 向量点,包括请求满足。Squid-2 通过一套维护不善且非常不稳定的补丁支持有限的 ICAP。值得注意的是,Squid 开发人员不再正式支持 Squid-2 的 ICAP 工作。

Squid 支持接收来自 ICAP 服务器的 204(无修改)响应。这通常在服务器希望不对 HTTP 消息进行任何修改时使用。通过防止服务器将收到的 HTTP 消息发回 Squid,可以节省带宽。但在两种情况下,Squid 将不接受 204 响应:

原因很简单:如果服务器要向 Squid 响应 204,Squid 需要在内存中保留原始 HTTP 消息的副本。这两个基本要求是为了限制 Squid 在支持 204 时的内存使用而进行的基本优化。

🔗 Squid 配置

:bulb: ICAP 服务器的配置应在服务器文档中有详细说明。Squid 预计会支持其中任何一个。:information_source: Squid-3 的配置在 Squid-3.0Squid-3.1 之间发生了变化。

🔗 Squid 3.1

以下示例指示 Squid-3.1 与两个 ICAP 服务通信,一个用于请求适配,一个用于响应适配。

icap_enable on

icap_service service_req reqmod_precache bypass=1 icap://127.0.0.1:1344/request
adaptation_access service_req allow all

icap_service service_resp respmod_precache bypass=0 icap://127.0.0.1:1344/response
adaptation_access service_resp allow all

🔗 Squid 3.0

以下示例指示 Squid-3.0 与两个 ICAP 服务通信,一个用于请求适配,一个用于响应适配。

icap_enable on

icap_service service_req reqmod_precache 1 icap://127.0.0.1:1344/request
icap_class class_req service_req
icap_access class_req allow all

icap_service service_resp respmod_precache 0 icap://127.0.0.1:1344/response
icap_class class_resp service_resp
icap_access class_resp allow all

还有其他选项可以控制 ICAP 的各种方面。

类别:功能

导航:站点搜索站点页面类别🔼 向上