Jei Squid tiesioginis tarpinis serveris turi transformuoti HTML atsakymą, naudokite adaptavimo kelią. Squid apdoroja naršyklės tarpinio serverio užklausą; ICAP atsakymų paslauga atlieka turinio transformaciją ir grąžina pritaikytą HTTP pranešimą.

Tai suteikia transformacijai apibrėžtą vietą užklausos gyvavimo cikle. Atsakymo antraštės taisyklė negali pakeisti HTML analizatoriaus, o atskiras žiniatinklio serverio filtras automatiškai neapdoroja srauto, einančio per Squid.

Atsakymų paslaugos prijungimas

Jei Squid 7 versija palaiko ICAP ir yra esama suderinama paslauga, konfigūracijos forma yra tokia:

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

Klientų diapazonas ir paslaugos URI yra pavyzdžiai. URI turi nurodyti tikrą ICAP paslaugą, kuri įgyvendina atsakymo transformaciją; /modify paskelbimas jos nesukuria. Šis fragmentas papildo esamą tarpinio serverio klausytoją ir prieigos kontrolę.

respmod_precache pasirenka atsakymų adaptavimą taške prieš podėlį. adaptation_access pasirenka tos paslaugos operacijas. Nustatymas bypass=0 reiškia, kad Squid negali tyliai praleisti šios paslaugos, kai taikoma operacija susiduria su paslaugos gedimu. Pasirinkite šį gedimo elgesį atsižvelgdami į tai, ar transformacija privaloma.

Adaptavimo direktyvos priklauso nuo versijos. Visų pirma, šios konfigūracijos nuorodos išvardija ICAP paslaugos ir adaptavimo prieigos sąsajas Squid 7 ir ankstesnėms palaikomoms linijoms bei pažymi jas kaip nepasiekiamas Squid 8. Traktuokite fragmentą kaip Squid 7 pavyzdį, o ne kopijuokite jį į bet kokį leidimą.

Suteikite paslaugai tikslią transformacijos sutartį

Nurodykite, kurie atsakymai tinkami ir kokių pakeitimų reikia. Tik HTML transformacija turėtų palikti paveikslėlius, archyvus ir nesusijusią mediją nepaliestus. Paslauga taip pat turi apdoroti atvaizdavimą, kurį iš tikrųjų gauna: suspaustus turinius, simbolių koduotes ir metaduomenis, aprašančius pakeistą turinį. Teksto įterpimas į savavališkus atsakymo baitus nėra bendra HTML transformacija.

Apsvarstykite podėlio naudojimą, kai pakeitimas skirtas konkrečiam naudotojui. Transformacija prieš podėlį ir bendras podėlis yra blogas derinys, jei gautas atvaizdavimas galioja tik vienam skaitytojui. Laikykite podėlio tinkamumą ir transformacijos politiką suderintus ir laikykitės taikomų no-transform direktyvų.

Galiausiai įprastas HTTPS CONNECT tunelis perduoda užšifruotus baitus. Jis neatskleidžia HTML atsakymų adapteriui. Sąmoningai valdoma TLS tikrinimo schema turi turėti savo suderintą sąranką ir klientų pasitikėjimą, kad iššifruoti atsakymai galėtų patekti į šį kelią. Vien ICAP taisyklė to matomumo neprideda.

Susiję straipsniai