Connecter un service de réponses HTML ICAP à Squid 7
Connectez un service de réponses ICAP existant à un proxy direct Squid 7 et décidez quelles réponses il doit transformer.
Pour un proxy direct Squid qui doit transformer une réponse HTML, utilisez le chemin d'adaptation. Squid traite la requête de proxy du navigateur ; un service de réponses ICAP effectue la transformation du corps et renvoie le message HTTP adapté.
Cela donne à la transformation une place définie dans le cycle de vie de la requête. Une règle d'en-tête de réponse ne peut pas remplacer un analyseur HTML, et un filtre de serveur web distinct ne traite pas automatiquement le trafic qui traverse Squid.
Connecter un service de réponses
Pour une compilation de Squid 7 compatible ICAP et un service compatible existant, la forme de la configuration est la suivante :
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
La plage de clients et l'URI du service sont des exemples. L'URI doit nommer un véritable service ICAP qui met en œuvre la transformation de la réponse ; déclarer /modify n'en crée pas un. Le fragment complète l'écouteur existant du proxy et ses contrôles d'accès.
respmod_precache sélectionne l'adaptation des réponses au point situé avant le cache. adaptation_access sélectionne les transactions pour ce service. Le réglage bypass=0 signifie que Squid ne peut pas ignorer silencieusement ce service lorsqu'une transaction applicable rencontre une défaillance du service. Choisissez ce comportement en cas de défaillance selon que la transformation est obligatoire ou non.
Les directives d'adaptation dépendent de la version. En particulier, ces références de configuration listent les interfaces de service ICAP et d'accès à l'adaptation pour Squid 7 et les branches prises en charge antérieures, et les marquent comme indisponibles dans Squid 8. Traitez le fragment comme un exemple pour Squid 7 plutôt que de le copier dans une version quelconque.
Donner au service un contrat de transformation précis
Précisez quelles réponses sont éligibles et quelles modifications sont requises. Une transformation HTML uniquement doit laisser intactes les images, les archives et les médias non concernés. Le service doit aussi gérer la représentation qu'il reçoit réellement : corps compressés, encodages de caractères et métadonnées décrivant le corps modifié. Insérer du texte dans des octets de réponse arbitraires n'est pas une transformation HTML générale.
Tenez compte de la mise en cache lorsque le remplacement est propre à un utilisateur. Une transformation avant le cache et un cache partagé forment une mauvaise combinaison si la représentation obtenue n'est valable que pour un seul lecteur. Maintenez la cohérence entre la capacité de mise en cache et la politique de transformation, et respectez les directives no-transform applicables.
Enfin, un tunnel HTTPS CONNECT ordinaire transporte des octets chiffrés. Il n'expose pas le HTML à un adaptateur de réponses. Une inspection TLS gérée délibérément nécessite sa propre configuration compatible et la confiance des clients avant que des réponses déchiffrées puissent emprunter ce chemin. La règle ICAP seule n'ajoute pas cette visibilité.