Conectar un servicio de respuestas HTML por ICAP a Squid 7
Conecte un servicio de respuestas ICAP existente a un proxy directo Squid 7 y decida qué respuestas debe transformar.
Para un proxy directo Squid que necesita transformar una respuesta HTML, use la ruta de adaptación. Squid gestiona la petición de proxy del navegador; un servicio de respuestas ICAP realiza la transformación del cuerpo y devuelve el mensaje HTTP adaptado.
Esto da a la transformación un lugar definido en el ciclo de vida de la petición. Una regla de cabecera de respuesta no puede sustituir a un analizador HTML, y un filtro de servidor web aparte no procesa automáticamente el tráfico que pasa por Squid.
Conectar un servicio de respuestas
Para una compilación de Squid 7 con soporte de ICAP y un servicio compatible existente, la forma de la configuración es:
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
El rango de clientes y el URI del servicio son ejemplos. El URI debe nombrar un servicio ICAP real que implemente la transformación de la respuesta; declarar /modify no crea ninguno. El fragmento complementa el escucha existente del proxy y sus controles de acceso.
respmod_precache selecciona la adaptación de respuestas en el punto previo a la caché. adaptation_access selecciona las transacciones de ese servicio. El ajuste bypass=0 significa que Squid no puede omitir en silencio este servicio cuando una transacción aplicable encuentra un fallo del servicio. Elija ese comportamiento ante fallos según si la transformación es obligatoria.
Las directivas de adaptación dependen de la versión. En particular, estas referencias de configuración enumeran las interfaces de servicio ICAP y de acceso a la adaptación para Squid 7 y líneas compatibles anteriores, y las marcan como no disponibles en Squid 8. Trate el fragmento como un ejemplo de Squid 7 en lugar de copiarlo en una versión cualquiera.
Dar al servicio un contrato de transformación preciso
Especifique qué respuestas son elegibles y qué cambios se requieren. Una transformación solo de HTML debería dejar intactas las imágenes, los archivos y los medios no relacionados. El servicio también debe manejar la representación que realmente recibe: cuerpos comprimidos, codificaciones de caracteres y los metadatos que describen el cuerpo modificado. Insertar texto en bytes de respuesta arbitrarios no es una transformación HTML general.
Tenga en cuenta el almacenamiento en caché cuando el reemplazo sea específico del usuario. Una transformación previa a la caché y una caché compartida son una mala combinación si la representación resultante solo es válida para un lector. Mantenga alineadas la capacidad de caché y la política de transformación, y respete las directivas no-transform aplicables.
Por último, un túnel HTTPS CONNECT ordinario transporta bytes cifrados. No expone el HTML a un adaptador de respuestas. Un dispositivo de inspección TLS gestionado deliberadamente necesita su propia configuración compatible y la confianza del cliente antes de que las respuestas descifradas puedan entrar en esta ruta. La regla ICAP por sí sola no añade esa visibilidad.