W przypadku proxy przekazującego Squid, które musi przekształcić odpowiedź HTML, użyj ścieżki adaptacji. Squid obsługuje żądanie proxy przeglądarki; usługa odpowiedzi ICAP wykonuje transformację treści i zwraca dostosowany komunikat HTTP.

Daje to transformacji określone miejsce w cyklu życia żądania. Reguła nagłówka odpowiedzi nie może zastąpić parsera HTML, a odrębny filtr serwera WWW nie przetwarza automatycznie ruchu przechodzącego przez Squid.

Podłączanie usługi odpowiedzi

Dla kompilacji Squid 7 z obsługą ICAP i istniejącej zgodnej usługi kształt konfiguracji jest następujący:

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

Zakres klientów i URI usługi to przykłady. URI musi wskazywać rzeczywistą usługę ICAP, która realizuje transformację odpowiedzi; zadeklarowanie /modify jej nie tworzy. Fragment uzupełnia istniejący nasłuch proxy i mechanizmy kontroli dostępu.

respmod_precache wybiera adaptację odpowiedzi w punkcie przed pamięcią podręczną. adaptation_access wybiera transakcje dla tej usługi. Ustawienie bypass=0 oznacza, że Squid nie może po cichu pominąć tej usługi, gdy odpowiednia transakcja napotka awarię usługi. Wybierz to zachowanie przy awarii zależnie od tego, czy transformacja jest obowiązkowa.

Dyrektywy adaptacji zależą od wersji. W szczególności te odwołania do konfiguracji wymieniają interfejsy usługi ICAP i dostępu do adaptacji dla Squid 7 oraz wcześniejszych obsługiwanych gałęzi i oznaczają je jako niedostępne w Squid 8. Traktuj fragment jako przykład dla Squid 7, zamiast kopiować go do dowolnego wydania.

Nadanie usłudze precyzyjnej umowy transformacji

Określ, które odpowiedzi są kwalifikowane i jakie zmiany są wymagane. Transformacja wyłącznie HTML powinna pozostawić obrazy, archiwa i niepowiązane multimedia nietknięte. Usługa musi także obsługiwać reprezentację, którą faktycznie otrzymuje: skompresowane treści, kodowania znaków i metadane opisujące zmienioną treść. Wstawianie tekstu do dowolnych bajtów odpowiedzi nie jest ogólną transformacją HTML.

Rozważ pamięć podręczną, gdy zamiana jest specyficzna dla użytkownika. Transformacja przed pamięcią podręczną i współdzielona pamięć podręczna to złe połączenie, jeśli wynikowa reprezentacja jest ważna tylko dla jednego czytelnika. Utrzymuj spójność możliwości buforowania i polityki transformacji oraz przestrzegaj obowiązujących dyrektyw no-transform.

Na koniec zwykły tunel HTTPS CONNECT przenosi zaszyfrowane bajty. Nie udostępnia HTML adapterowi odpowiedzi. Celowo zarządzany układ inspekcji TLS wymaga własnej zgodnej konfiguracji i zaufania klientów, zanim odszyfrowane odpowiedzi będą mogły wejść na tę ścieżkę. Sama reguła ICAP nie dodaje tej widoczności.

Powiązane artykuły