تخزين Squid المؤقت لقوائم ACL الخارجية: لماذا لا يُستدعى المساعد في كل مرة
صمّم مساعدات ACL الخارجية في Squid حول عمليات دائمة ومفاتيح تخزين مؤقت للقرارات ومتطلب صريح لحداثة التفويض.
قد يكون من الطبيعي أن يسجّل المساعد طلبًا واحدًا ثم يصمت. فقد يقيّم Squid قاعدة باستخدام نتيجة ACL خارجية مخزّنة مؤقتًا دون إرسال استعلام آخر إلى المساعد.
عرّف أولًا القرار القابل لإعادة الاستخدام. «هل يحق لهذا الحساب استخدام الوكيل؟» يحتاج مدخلات مختلفة عن «هل يحق لهذا الحساب الوصول إلى هذه الوجهة؟» صيغة ACL الخارجية الموسّعة تشكّل مفتاح التخزين المؤقت. إذا قرّر المساعد باسم المستخدم والوجهة بينما يتضمن المفتاح اسم المستخدم فقط، فقد تُطبَّق موافقة مخزّنة على نطاق أوسع من المقصود. أدرج كل مدخل يغيّر الإجابة وتجنّب التفاصيل التي تفتّت قرارات متكافئة فحسب.
بعد ذلك اختر الحداثة. يتحكم ttl وnegative_ttl الموجبان في النتائج المطابقة وغير المطابقة؛ ويمكن لـgrace بدء التحديث قبل انتهاء صلاحية الإدخال. حدّد مدة تأثير الموافقة المخزّنة لحساب ملغى على القرارات اللاحقة. لا يعيد أي من هذه الإعدادات تفويض نفق CONNECT القائم لكل بايت أو لكل طلب HTTPS داخلي. إذا كان المساعد يفرض حصة مرور، فقد تستمر النقلات المسموح بها بعد تغيّر الرصيد.
المساعد مشارك دائم في البروتوكول، وليس بالضرورة عملية سكربت جديدة لكل طلب. أبقِه جاهزًا لأسطر استعلام متتالية وادفع كل رد فورًا. ضع التشخيصات على قناة أخرى. عند تفعيل التزامن، أعد معرّف القناة المزوّد المقابل.
أخيرًا، عرّف نتائج البطء وعدم التوفر والخطأ الداخلي، واجعل ترتيب ACL المحيط ينتجها. يكتمل التصميم عندما تتطابق دقة الإجابة القابلة لإعادة الاستخدام وعمرها المسموح مع متطلبات الوصول.