Para un proxy directo Squid que necesita transformar unha resposta HTML, use a ruta de adaptación. Squid xestiona a solicitude de proxy do navegador; un servizo de respostas ICAP realiza a transformación do corpo e devolve a mensaxe HTTP adaptada.

Isto dálle á transformación un lugar definido no ciclo de vida da solicitude. Unha regra de cabeceira de resposta non pode substituír un analizador HTML, e un filtro de servidor web aparte non procesa automaticamente o tráfico que pasa por Squid.

Conectar un servizo de respostas

Para unha compilación de Squid 7 con compatibilidade ICAP e un servizo compatible existente, a forma da configuración é:

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

O rango de clientes e o URI do servizo son exemplos. O URI debe nomear un servizo ICAP real que implemente a transformación da resposta; declarar /modify non crea ningún. O fragmento complementa o oínte existente do proxy e os seus controis de acceso.

respmod_precache selecciona a adaptación de respostas no punto previo á caché. adaptation_access selecciona as transaccións dese servizo. O axuste bypass=0 significa que Squid non pode omitir silenciosamente este servizo cando unha transacción aplicable atopa un fallo do servizo. Escolla ese comportamento ante fallos segundo se a transformación é obrigatoria.

As directivas de adaptación dependen da versión. En concreto, estas referencias de configuración enumeran as interfaces de servizo ICAP e de acceso á adaptación para Squid 7 e liñas compatibles anteriores, e márcaas como non dispoñibles en Squid 8. Trate o fragmento como un exemplo de Squid 7 en lugar de copialo nunha versión calquera.

Dar ao servizo un contrato de transformación preciso

Especifique que respostas son elixibles e que cambios son necesarios. Unha transformación só de HTML debería deixar intactas as imaxes, os arquivos e os medios non relacionados. O servizo tamén debe xestionar a representación que recibe realmente: corpos comprimidos, codificacións de caracteres e os metadatos que describen o corpo modificado. Inserir texto en bytes de resposta arbitrarios non é unha transformación HTML xeral.

Teña en conta a caché cando o reemprazo sexa específico do usuario. Unha transformación previa á caché e unha caché compartida son unha mala combinación se a representación resultante só é válida para un lector. Manteña aliñadas a capacidade de caché e a política de transformación, e respecte as directivas no-transform aplicables.

Por último, un túnel HTTPS CONNECT ordinario transporta bytes cifrados. Non expón o HTML a un adaptador de respostas. Unha inspección TLS xestionada deliberadamente necesita a súa propia configuración compatible e a confianza do cliente antes de que as respostas descifradas poidan entrar nesta ruta. A regra ICAP por si soa non engade esa visibilidade.

Artigos relacionados