Einen ICAP-HTML-Antwortdienst mit Squid 7 verbinden
Verbinden Sie einen bestehenden ICAP-Antwortdienst mit einem Squid 7 Forward-Proxy und entscheiden Sie, welche Antworten er umwandeln soll.
Für einen Squid-Forward-Proxy, der eine HTML-Antwort umwandeln muss, nutzen Sie den Adaptionspfad. Squid bearbeitet die Proxy-Anfrage des Browsers; ein ICAP-Antwortdienst führt die Body-Transformation aus und gibt die angepasste HTTP-Nachricht zurück.
Das gibt der Transformation einen festen Platz im Lebenszyklus der Anfrage. Eine Antwort-Header-Regel kann keinen HTML-Parser ersetzen, und ein separater Webserver-Filter verarbeitet keinen Datenverkehr, der Squid durchläuft, automatisch.
Einen Antwortdienst verbinden
Für einen Squid-7-Build mit ICAP-Unterstützung und einen vorhandenen kompatiblen Dienst sieht die Konfiguration so aus:
acl adaptation_clients src 192.0.2.0/24
icap_enable on
icap_service html_editor respmod_precache bypass=0 icap://127.0.0.1:1344/modify
adaptation_access html_editor allow adaptation_clients
adaptation_access html_editor deny all
Der Client-Bereich und die Dienst-URI sind Beispiele. Die URI muss einen tatsächlichen ICAP-Dienst benennen, der die Antworttransformation implementiert; die Angabe von /modify erzeugt keinen. Das Fragment ergänzt den vorhandenen Listener und die Zugriffskontrollen des Proxys.
respmod_precache wählt die Antwortadaption am Punkt vor dem Cache. adaptation_access wählt Transaktionen für diesen Dienst. Die Einstellung bypass=0 bedeutet, dass Squid diesen Dienst nicht stillschweigend überspringen kann, wenn eine zutreffende Transaktion auf einen Dienstfehler stößt. Wählen Sie dieses Fehlerverhalten danach, ob die Transformation erforderlich ist.
Die Adaptionsdirektiven sind versionsabhängig. Diese Konfigurationsreferenzen führen insbesondere die Schnittstellen für ICAP-Dienst und Adaptionszugriff für Squid 7 und frühere unterstützte Linien auf und markieren sie in Squid 8 als nicht verfügbar. Behandeln Sie das Fragment als Beispiel für Squid 7, statt es in eine beliebige Version zu kopieren.
Dem Dienst einen präzisen Transformationsvertrag geben
Legen Sie fest, welche Antworten zulässig sind und welche Änderungen erforderlich sind. Eine reine HTML-Transformation sollte Bilder, Archive und unbezogene Medien unberührt lassen. Der Dienst muss außerdem die Repräsentation verarbeiten, die er tatsächlich erhält: komprimierte Bodies, Zeichenkodierungen und die Metadaten, die den geänderten Body beschreiben. Das Einfügen von Text in beliebige Antwort-Bytes ist keine allgemeine HTML-Transformation.
Berücksichtigen Sie Caching, wenn die Ersetzung benutzerspezifisch ist. Eine Transformation vor dem Cache und ein gemeinsam genutzter Cache sind eine schlechte Kombination, wenn die resultierende Repräsentation nur für einen Leser gültig ist. Halten Sie Cachefähigkeit und Transformationsrichtlinie im Einklang und beachten Sie geltende no-transform-Direktiven.
Schließlich überträgt ein gewöhnlicher HTTPS-CONNECT-Tunnel verschlüsselte Bytes. Er legt HTML nicht für einen Antwortadapter offen. Eine bewusst verwaltete TLS-Inspektionsregelung benötigt ihre eigene kompatible Einrichtung und das Vertrauen der Clients, bevor entschlüsselte Antworten diesen Pfad erreichen können. Die ICAP-Regel allein fügt diese Sichtbarkeit nicht hinzu.