مخبأ الحبار - الجزء 2

Squid ليست خدمة وكيل وذاكرة تخزين مؤقت فحسب ، بل يمكنها فعل المزيد: إدارة قوائم الوصول (قوائم الوصول) ، ومحتوى التصفية ، ويمكنها أيضًا إجراء تصفية ssl حتى في الوضع الشفاف (طريقة الوكيل - دون الحاجة إلى تكوين إعدادات الوكيل من متصفحاتهم ، مثل الرجل في المنتصف ، لا أحد يعرف أنه موجود). لذلك أرى عادةً كيف يتم إهدار الإمكانات الكاملة لهذا التطبيق من خلال عدم معرفة كيفية تكوين كل جزء من أجزائه.

الآن الشيء المثير للاهتمام الذي يفعله الحبار هو ذاكرة التخزين المؤقت (في رأيي). ستقول لي ، لماذا ذاكرة التخزين المؤقت؟ السبب بسيط ، إدارة أفضل لاستخدام السرعة وعرض النطاق الترددي هو الشيء الرئيسي. فكر جيدًا ، 1000 شخص في شركتك يستشيرون كل 5 دقائق ، الصفحات المشتركة ، Google ، Hotmail ، Gmail ، إلخ ... حتى تقوم بتنزيل الصور واللافتات والإعلانات ومحتوى html مرارًا وتكرارًا ، كل هذه الأشياء ثابتة الأشياء ، لا تتغير كثيرًا ، من الأفضل تخزينها على شبكتك المحلية وتقديم نسخة تعتبرها حديثة ضمن التكوينات التي فكرت فيها.

كيف نفعل ذلك بسيط مع الجملة التالية:

refresh_pattern [-i] regex min percent max [options]

كما أقول دائمًا ، لا تصدق كل شيء ، لذا أدعوك للقراءة من المصدر الرسمي. أنصحك بقراءة دليل هذه الجملة HERE

جملة او حكم على تحديث_نمط سيكون دائمًا تصنيفنا لإضافة معلمات جديدة إلى ذاكرة التخزين المؤقت.

هام ، يجب أن تكون قوائم ذاكرة التخزين المؤقت الخاصة بك متسلسلة ، لأنه بمجرد تطابقها مع القائمة الأولى التي تطابق الكائن ، فلن تستمر في قراءة القواعد الأخرى

التعبيرات العادية حساسة لحالة الأحرف ، وبالتالي فإن flv ليس هو نفسه FLV ، ولكن يمكنك تجنب ذلك إذا كنت ترغب في ذلك باستخدام الخيار -i . ثم سيبدو مثل هذا تحديث_نمط-ط

"مين": هو الوقت (بالدقائق) الذي سيتم فيه اعتبار العنصر "حديثًا أو حديثًا" وإذا لم يكن به تصنيف صريح "منتهي الصلاحية". بشكل افتراضي ، يوصي Squid بأن تكون القيمة 0 ، لأسباب تجعل بعض التطبيقات الديناميكية تتصرف بشكل غريب ، مثل blah blah blah ، يجب أن تكون هذه القيمة حقًا رقمًا تعتبره مفيدًا وفعالًا للعناصر التي تريد تخزينها مؤقتًا ، مثال: jpg ، 1440 دقيقة (يوميًا) تبدو جيدة بالنسبة لي ، فليس الأمر كما لو أن صور المنشور تتغير كل 5 دقائق على الصفحة.

'نسبه مئويه' هي النسبة المئوية لعمر الكائن (منذ التعديل الأخير) التي سيتم اعتبارها "حديثة أو حديثة". اسمحوا لي أن أوضح ، ربما إجراء إعادة تحميل أو تحديث مستمر لمعرفة آخر التعديلات التي تم إجراؤها على صفحة الويب ، يمكن أن يفكر Squid في ما إذا كان قد اكتمل بالفعل ، على سبيل المثال ، 50٪ من الوقت بين دقيقة y ماكس، قم بإعادة تنزيل هذا الكائن من الإنترنت ومنحك نسخة جديدة.

ماكس هو الحد أعلاه أو يساوي "دقيقة" كم من الوقت يعتبر الكائن "حديثًا أو حديثًا" ، لنفترض أن صورة ما لصفحة ما تمت مراجعتها مرة واحدة فقط بواسطة المستخدم ، وأن هذا الكائن قد وصل بالفعل إلى وقته دقيقة، pero no el ماكس، ثم عندما يتم الاستعلام عنها مرة أخرى ، سيتم تسليم نسخة مخبأة.

Options:
override-expire
override-lastmod
reload-into-ims
ignore-reload
ignore-no-store
ignore-private
max-stale=NN
refresh-ims
store-stale

تم إجراء هذه الخيارات في الغالب لتجاهل السلوكيات المحددة مسبقًا في اللغات والبروتوكولات ، من أجل ضمان الاستخدام الفعال لذاكرة التخزين المؤقت.

override-expire

يفرض الحد الأدنى من الوقت للعنصر ، حتى إذا أرسل الخادم وقت انتهاء صلاحية أقصر (على سبيل المثال أشياء مثل header أو Cache-Control: max-age). إذا فعلنا ذلك ، فسيظهر "تحذير" يقول أشياء مثل هذه "ينتهك معيار HTTP" ولكن هذه مجرد تحذيرات يمكننا تجاهلها. الآن إذا كان الوقت الذي يرسله الخادم أطول ، فسيستغرق Squid وقت (انتهاء) الخادم

override-lastmod

يعزز الحد الأدنى من الوقت لعنصر ما ، حتى لو تم تعديل هذا العنصر مؤخرًا.

reload-into-ims

الشرح المختصر هو أنه يمنع ذلك عند الضغط على زر التحديث أو تقديم طلب عدم تخزين مؤقت ، فإن Squid سوف يسلم ذاكرة التخزين المؤقت إذا لم يتم "تعديلها منذ" و / أو إذا لم يكن هناك "رؤوس" على الصفحة.

ignore-reload

تجاهل إجراء المستخدمين بالضغط على زر إعادة التحميل أو تحديث الصفحة

ignore-no-store

تجاهل أي قاعدة في الرؤوس لعدم التخزين المؤقت ، مثل مقاطع الفيديو

ignore-private

تجاهل أي قواعد في رؤوس المحتوى الخاص لا يجب تخزينها مؤقتًا ، على سبيل المثال: محتوى facebook.

refresh-ims

يتصل Squid بالخادم للتأكد من أن الكائن هو الأحدث. إذا كان الأمر كذلك ، فسيتم تسليم ذاكرة التخزين المؤقت

store-stale

سيحفظ Squid جميع هذه الردود ، حتى لو لم يكن لديهم تاريخ انتهاء صلاحية ، فهذا غير عملي للغاية حيث لا يمكن إعادة استخدامها عادةً. إذا قررت تمكينه ، فيجب عليك التصريح عن max-stale = NN

max-stale=NN

إذا قمت بتمكين ما ورد أعلاه ، يجب أن تعلن عن أقصى عمر لتلك الاستجابة أو العامل. لا يقدم Squid كائنات من هذا النمط ولكن يمكنه التحقق من صحتها باستخدام المصدر

فيما يلي جدول يوضح كيفية عمل حالة "FRESH" وفقًا للقيم التي ناقشناها:

  • جديد إذا انتهت صلاحيته> الآن ، وإلا STALE
  • STALE إذا كان العمر> الحد الأقصى
  • طازج إذا كان عامل lm <نسبة مئوية ، وإلا ستبقى
  • طازج إذا كان العمر <دقيقة أخرى STALE

فيما يلي مثال على تكوين شركة معينة بها مساحة كبيرة على القرص ومعدات جيدة ونطاق ترددي جيد

refresh_pattern -i \.(3gp|7z|ace|asx|bin|deb|divx|dvr-ms|ram|rpm|exe|inc|cab|qt)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(rar|jar|gz|tgz|bz2|iso|m1v|m2(v|p)|mo(d|v)|arj|lha|lzh|zip|tar)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|dat|ad|txt|dll)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(avi|ac4|mp(e?g|a|e|1|2|3|4)|mk(a|v)|ms(i|u|p)|og(x|v|a|g)|rm|r(a|p)m|snd|vob)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(pp(t?x)|s|t)|pdf|rtf|wax|wm(a|v)|wmx|wpl|cb(r|z|t)|xl(s?x)|do(c?x)|flv|x-flv)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims
cache_mem 8092 MB

الآن ذاكرة التخزين المؤقت ليست فقط على القرص الصلب ، يمكننا أيضًا تخزين ذاكرة الوصول العشوائي مؤقتًا ، هذه القيمة لكل عملية حبار ، لذلك يجب أن تأخذها في الاعتبار عند استخدام معيدات التوجيه مثل الحبار

maximum_object_size_in_memory 1024 KB

الحجم الأقصى للكائن في الذاكرة الذي سيخزنه الحبار في ذاكرة الوصول العشوائي. يمكنك أيضًا إعلان حد أدنى.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

كما ترى ، أحدهما هو سياسة استبدال ذاكرة التخزين المؤقت في ذاكرة RAM والآخر في القرص الصلب. هناك 2 سياسات GDSF و LFUDA. يسعى الأول إلى تحسين النسبة المئوية لمرات الوصول إلى ذاكرة التخزين المؤقت ، حيث يوجد العديد من الأشياء الصغيرة في متناول اليد ، ويبحث الثاني عن العكس ، فهو يحتفظ بالعناصر في ذاكرة التخزين المؤقت بغض النظر عن حجمها.

السؤال الذي أتخيل أنك تسألني عنه في الوقت الحالي هو ، ما هو الاستخدام الذي أستخدمه؟ حسنًا ، إذا كنت تفكر في ذلك في بيئتك ، فإنهم يقومون بالعديد من الاستعلامات وقليل من التنزيلات يستخدمون GDSF إذا كانوا على العكس من ذلك يقومون بتنزيلات كثيرة وقليل من استعلامات LFUDA . إذا أوصيت بـ LFUDA عندما تقوم بذلك ، لا أعرف ، ذاكرة التخزين المؤقت في 1 تيرابايت من القرص ، فهي أكثر كفاءة.

maximum_object_size 4 MB

الحجم الأقصى الذي يمكن تخزينه في كائن

cache_dir aufs /media/proxy249/cache 100 16 256

حيث سيتم تخزين ذاكرة التخزين المؤقت ، الانتباه هنا ، المهم هو إذا كنت تستخدم ufs أو aufs أو diskd ، فجميع الثلاثة تعمل بشكل أو بآخر ، والفرق هو أن aufs و diskd يعملان مع عمليات منفصلة للقيام بعمليات الإدخال / الإخراج على القرص الصلب وتجنب توقف عمليات الحبار أثناء هذه العمليات ، بالإضافة إلى diskd يمكنك تحديد عدد مؤشرات الترابط التي ستكون لديك لهذه المهمة. أوصي بـ aufs إذا كان لديك فريق جيد.

الحجم 100 (ميغا) ، يمكنك وضع 100000 أي ما يقرب من 100 جيجابايت حسب التوافر لديك. 16 هو عدد المجلدات ، و 256 هو عدد المجلدات الفرعية. يمكنك اللعب بكلتا القيمتين بناءً على مدى سرعة أقراصك ومقدار الموارد التي لديك.


cache_swap_low 90
cache_swap_high 95

هذه الخيارات هي قيم الاستبدال للكائنات ، وهي القيمة الدنيا والقصوى كعلامة مائية وفقًا للحبار ، حيث تكون هذه الأرقام في نسبة مئوية (٪) ، وفي ذاكرة تخزين مؤقت صغيرة جدًا ، 5٪ مثل هذا الآن سيكون دعنا نقول 300 عنصر في الثانية ، ولكن في مخابئ كبيرة جدًا نتحدث عن آلاف الميجابايت

حسنًا ، هناك أترك لك تعليقًا الآن وأيضًا ضع في الاعتبار أولئك الذين أخبروني أنهم لا يستطيعون تخزين صفحات https (SSL) مؤقتًا وتصفيتها في Squid 3.5 أو أعلى ، وسوف أحضرهم إليك قريبًا ، ترقبوا هذه المدونة.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   المهندس خوسيه ألبرت قال

    تكملة ممتازة للجزء الأول!

    هناك الكثير من الأدبيات حول Squid ، ولكن الوصول إلى النقطة في أكثر الخيارات العملية مع التفسيرات الخاصة بكل منها وسيناريوهات الاستخدام الحقيقي المحتملة ليس دائمًا في متناول اليد!

    كالعادة ، أتطلع إلى الجزء الثالث منه!

    1.    بروديال قال

      شكرا على تعليقك. إنه شرح صحيح وموجز لجميع العناصر ذات الصلة وإعداد أفضل الممارسات. ومع ذلك ، فأنا دائمًا منتبه لتعليقاتك وتجاربك الخاصة.

  2.   ارتوس قال

    مرحبًا ، لدي مشكلة في تحديثات Windows وبرامج مكافحة الفيروسات. لدي ما يقرب من 120 جهاز كمبيوتر في مؤسستي. هل يمكن أن تعطيني فكرة عن كيفية تحسين هذا الوضع. شكرا لمساعدتكم وتهانينا على المقال.

    1.    بروديال قال

      مرحبًا ، شكرًا لمشاركتك .. حسنًا ، إذا كان بإمكاني مساعدتك ، ولكن أوضح جيدًا ما هي مشكلتك ، فلا يمكنك تنزيل التحديثات؟ هل قمت بوضع الوكيل في خيارات الإنترنت ونفس الشيء في خيارات الوكيل في متصفحك؟ هل قمت بفحص المنافذ؟ أم تريد تخزين هذه التحديثات مؤقتًا؟

      1.    ارتوس قال

        ما أحتاجه هو أنه في كل مرة يقوم فيها جهاز الكمبيوتر بتنزيل Windows أو تحديث مضاد للفيروسات ، فإنه يظل في ذاكرة التخزين المؤقت لمدة شهر تقريبًا ، وبهذه الطريقة أرغب في حفظ النطاق الترددي ، لأنه كل صباح في كل مرة تبدأ جميع أجهزة الكمبيوتر في تنزيل نفس الشيء يقوم بتحديث كل واحد والاتصال مشبع.

        شكرا لمساعدتكم.

    2.    ماريو قال

      يعمل الخادم الذي يحتوي على Squid ، نظرًا لأنها تنزيلات http بسيطة غير مشفرة. الحلول الأخرى لذاكرة التخزين المؤقت هي WSUS و Altiris ، وهي طبيعية في الشركات.

      1.    ارتوس قال

        شكرا ماريو سأضع ذلك في الاعتبار.

    3.    بروديال قال

      حسنًا ، جاهز ، أفهم ذلك ، تحقق من هذا الرابط. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. لتخزين برنامج مكافحة الفيروسات مؤقتًا ، يجب أن تعرف من أين يتم تنزيل التحديثات وتحت أي امتداد (مثال. exe) وتخزينها مؤقتًا ...

  3.   ارتوس قال

    شكرا لمساعدتكم.

  4.   إريك قال

    صباح الخير يا أصدقاء ، هل يمكن أن تدعموني في حالتي. نظرًا لأن لدي Squid 2.7 .STABLE9 على debian 6 ، ولدي كل شيء مهيأ وعند تركيبه في بيئة 10 أجهزة كمبيوتر ، أتلقى بريدًا عاديًا ، تكمن المشكلة عندما أقوم بتثبيته على 90 جهاز كمبيوتر ، فإنه لا يدوم سوى بضع ثوانٍ من العمل ومن هناك أصبح الجميع بلا إنترنت. هل يمكنك دعمني؟

  5.   خوسيه ريفاس قال

    شرح ممتاز ، أساسي ولكنه واضح ودقيق للغاية. أنا شخصياً أفضل تفسير تمكنت من قراءته.
    لدي سؤال ، هل من الممكن تخزين تطبيقات Android مثل apk و xapk؟
    وما هي الطريقة الصحيحة لتكوين ذاكرة التخزين المؤقت الديناميكية مهما كان أصل الملفات؟
    أستخدم pfSense 2.4.5.