Feature: eCAP support
Goal: Improve Squid3 content adaptation performance by 20+%, remove the need for an ICAP server
Version: 3.1
Status: Ready for initial testing; code in Squid 3.1 and later
Developer: AlexRousskov
More: eCAP info, context, code, Squid 3.1 Packages
Configuration
Install libecap and build Squid with the --enable-ecap configure option. Install an adapter module. The library and sample adapters are available from the eCAP site.
Configure Squid to load an adapter module and specify which services the module provides:
loadable_modules /usr/local/lib/ecap_adapter_minimal.so ecap_service eReqmod reqmod_precache 0 ecap://e-cap.org/ecap/services/sample/minimal ecap_service eRespmod respmod_precache 0 ecap://e-cap.org/ecap/services/sample/minimal
Among all dynamically loaded services, only the services matching ecap_service configuration are enabled by Squid.
Now you can setup ACLs to direct traffic to the configured services.
adaptation_service_set reqFilter eReqmod adaptation_service_set respFilter eRespmod adaptation_access respFilter allow all adaptation_access reqFilter allow all
ICAP and eCAP services can co-exist. ACLs control which service gets to process the HTTP message.
License Issues
Note: This is not a legally binding opinion. It is offered as a fair-use guideline for the expected practice. If you have any doubts regarding the licensing please contact your lawyer.
Squid is licensed under the GPLv2+, which brings up the question of licensing for its addon and plug-in helpers.
eCAP modules in particular fall well inside the boundary of code loaded and run internally. As such any modules require a GPLv2+ compatible license in order to distribute. http://www.fsf.org/licensing/licenses/gpl-faq.html#GPLAndPlugins
Modules available for Squid 3.1 and later
gzip compression http://code.google.com/p/squid-ecap-gzip/
