Untuk proksi hadapan Squid yang perlu mengubah respons HTML, gunakan laluan penyesuaian. Squid mengendalikan permintaan proksi pelayar; perkhidmatan respons ICAP melakukan transformasi badan dan mengembalikan mesej HTTP yang disesuaikan.

Ini memberikan transformasi tempat yang jelas dalam kitaran hayat permintaan. Peraturan pengepala respons tidak boleh menggantikan penghurai HTML, dan penapis pelayan web berasingan tidak memproses trafik yang melalui Squid secara automatik.

Menyambung perkhidmatan respons

Untuk binaan Squid 7 dengan sokongan ICAP dan perkhidmatan serasi sedia ada, bentuk konfigurasinya ialah:

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

Julat klien dan URI perkhidmatan ialah contoh. URI mesti menamakan perkhidmatan ICAP sebenar yang melaksanakan transformasi respons; mengisytiharkan /modify tidak menciptanya. Fragmen ini melengkapi pendengar sedia ada proksi dan kawalan aksesnya.

respmod_precache memilih penyesuaian respons pada titik sebelum cache. adaptation_access memilih transaksi untuk perkhidmatan itu. Tetapan bypass=0 bermaksud Squid tidak boleh melangkau perkhidmatan ini secara senyap apabila transaksi berkenaan menemui kegagalan perkhidmatan. Pilih tingkah laku kegagalan itu bergantung pada sama ada transformasi diwajibkan.

Arahan penyesuaian bergantung pada versi. Khususnya, rujukan konfigurasi ini menyenaraikan antara muka perkhidmatan ICAP dan akses penyesuaian untuk Squid 7 dan baris sokongan terdahulu, serta menandakannya sebagai tidak tersedia dalam Squid 8. Anggap fragmen ini sebagai contoh Squid 7 dan jangan salinnya ke mana-mana keluaran.

Berikan perkhidmatan kontrak transformasi yang tepat

Nyatakan respons yang layak dan perubahan yang diperlukan. Transformasi HTML sahaja harus membiarkan imej, arkib dan media tidak berkaitan. Perkhidmatan juga perlu mengendalikan representasi yang benar-benar diterimanya: badan termampat, pengekodan aksara dan metadata yang menerangkan badan yang diubah. Memasukkan teks ke dalam bait respons sewenang-wenangnya bukan transformasi HTML umum.

Pertimbangkan cache apabila penggantian khusus kepada pengguna. Transformasi sebelum cache dan cache dikongsi ialah gabungan buruk jika representasi yang terhasil hanya sah untuk seorang pembaca. Kekalkan kebolehan cache dan dasar transformasi selari, dan patuhi arahan no-transform yang berkenaan.

Akhir sekali, terowong HTTPS CONNECT biasa membawa bait tersulit. Ia tidak mendedahkan HTML kepada penyesuai respons. Susunan pemeriksaan TLS yang diurus secara sengaja memerlukan persediaan serasi dan kepercayaan klien sendiri sebelum respons dinyahsulit boleh memasuki laluan ini. Peraturan ICAP sahaja tidak menambah keterlihatan itu.

Artikel berkaitan