برای پروکسی پیشرو Squid که باید یک پاسخ HTML را تبدیل کند، از مسیر انطباق استفاده کنید. Squid درخواست پروکسی مرورگر را مدیریت می‌کند؛ یک سرویس پاسخ ICAP تبدیل بدنه را انجام می‌دهد و پیام HTTP انطباق‌یافته را برمی‌گرداند.

این به تبدیل جایگاهی مشخص در چرخه عمر درخواست می‌دهد. یک قاعده سرصفحه پاسخ نمی‌تواند جای تجزیه‌گر HTML را بگیرد، و یک فیلتر سرور وب جداگانه ترافیکی را که از Squid می‌گذرد به‌طور خودکار پردازش نمی‌کند.

اتصال یک سرویس پاسخ

برای یک ساخت Squid 7 با پشتیبانی ICAP و یک سرویس سازگار موجود، شکل پیکربندی چنین است:

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

محدوده کلاینت و URI سرویس نمونه‌اند. URI باید نام یک سرویس ICAP واقعی را که تبدیل پاسخ را پیاده‌سازی می‌کند ذکر کند؛ اعلام /modify چنین سرویسی ایجاد نمی‌کند. این قطعه شنونده موجود پروکسی و کنترل‌های دسترسی آن را تکمیل می‌کند.

respmod_precache انطباق پاسخ را در نقطه پیش از کش انتخاب می‌کند. adaptation_access تراکنش‌های آن سرویس را انتخاب می‌کند. تنظیم bypass=0 یعنی Squid نمی‌تواند وقتی یک تراکنش مرتبط با خطای سرویس روبه‌رو می‌شود، این سرویس را بی‌صدا رد کند. این رفتار خطا را بر اساس اینکه تبدیل الزامی است یا نه انتخاب کنید.

دستورهای انطباق وابسته به نسخه‌اند. به‌ویژه، این مراجع پیکربندی رابط‌های سرویس ICAP و دسترسی انطباق را برای Squid 7 و شاخه‌های پشتیبانی‌شده قدیمی‌تر فهرست می‌کنند و آن‌ها را در Squid 8 در دسترس‌ناپذیر علامت می‌زنند. با این قطعه مانند یک نمونه Squid 7 رفتار کنید، نه اینکه آن را در انتشار دلخواهی کپی کنید.

به سرویس یک قرارداد تبدیل دقیق بدهید

مشخص کنید کدام پاسخ‌ها واجد شرایط‌اند و چه تغییراتی لازم است. تبدیل فقط HTML باید تصاویر، آرشیوها و رسانه‌های نامرتبط را دست‌نخورده بگذارد. سرویس همچنین باید نمایشی را که واقعاً دریافت می‌کند مدیریت کند: بدنه‌های فشرده، کدگذاری‌های نویسه و فراداده‌ای که بدنه تغییر‌یافته را توصیف می‌کند. درج متن در بایت‌های دلخواه پاسخ، تبدیل عمومی HTML نیست.

وقتی جایگزینی مخصوص کاربر است، کش‌سازی را در نظر بگیرید. تبدیل پیش از کش و کش مشترک ترکیب بدی هستند اگر نمایش حاصل فقط برای یک خواننده معتبر باشد. قابلیت کش و سیاست تبدیل را هم‌راستا نگه دارید و دستورهای no-transform مرتبط را رعایت کنید.

در پایان، یک تونل معمولی HTTPS CONNECT بایت‌های رمزگذاری‌شده را حمل می‌کند. HTML را در معرض یک انطباق‌دهنده پاسخ قرار نمی‌دهد. یک ترتیب بازرسی TLS که آگاهانه مدیریت می‌شود به راه‌اندازی سازگار و اعتماد کلاینت خود نیاز دارد تا پاسخ‌های رمزگشایی‌شده بتوانند وارد این مسیر شوند. قاعده ICAP به‌تنهایی آن دید را اضافه نمی‌کند.

مقالات مرتبط