مشاكل محدد المعدل عند تحميل ملف نسخ احتياطي / لا يمكن تعطيل محدد المعدل

أقوم بنقل مثيل Discourse موجود من مكانه الحالي إلى جهاز افتراضي AWS EC2.
يقع الموقع خلف موازنات تحميل Amazon. لقد قمت بالفعل بتعديل app.yml بنجاح باستخدام توجيهات set_real_ip_from المناسبة حتى يعرف NGINX عناوين IP لموازنات التحميل. أعرف أن هذا يعمل لأنني أرى عنوان IP الحقيقي الخاص بي عندما أتحقق من آخر IP للمستخدم الخاص بي.

ومع ذلك، عندما أحاول تحميل النسخة الاحتياطية بحجم 375 ميجابايت من الخادم القديم، يبدأ الموقع الجديد في إصدار أخطاء 429 عندما يكون الملف حوالي 35٪ محملًا ويفشل تحميل الملف. تحدد الرؤوس في استجابات 429 " discourse-rate-limit-error-code: id_10_secs_limit ".

لقد وجدت هذا مفاجئًا. كان لدي نافذة أدوات المطور في متصفحي مفتوحة على علامة التبويب “Network” ورأيت الكثير من الأجزاء الصغيرة التي يتم تحميلها (أعتقد أنها كانت 5 ميجابايت) بسرعة كبيرة. لدي اتصال إنترنت سريع بسرعة 200 ميجابت في الثانية، لذا ربما يكون الأمر أسرع من اللازم بالنسبة لإعدادات محدد السرعة الافتراضية؟ أو ربما كان التوقع هو أن المهام الإدارية سيتم إجراؤها عادةً من شبكة خاصة (وهو أمر غير ممكن مع إعداد AWS الخاص بي)؟

ولكن انتظر، هناك المزيد! حاولت تعطيل محدد السرعة عن طريق التعليق على السطر “templates/web.ratelimited.template.yml” من app.yml وإعادة بناء التطبيق، لكن ذلك لم ينجح. ما زلت أحصل على أخطاء 429 عندما كان ملفي حوالي 35٪ محملًا.

لذلك، قمت بسرعة بإضافة متغيرات البيئة أدناه إلى ملف app.yml، وأعدت البناء، وتمكنت أخيرًا من تحميل النسخة الاحتياطية لاستعادتها.

DISCOURSE_MAX_REQS_PER_IP_MODE: none
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: 1000

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

خلاصة القول - أود الحصول على بعض الإرشادات حول:

  1. هل يجب أن يمنع محدد السرعة تحميل النسخ الاحتياطية بهذه الطريقة؟
  2. لماذا لم يتم تعطيل محدد السرعة عندما علقت هذا السطر وأعدت بناء التطبيق؟

شكرا!

إذا كنت تحاول تحميل نسخة احتياطية، فاستخدم scp أو ضعها على S3.

هل تقصد بنقل الملف مباشرة إلى الجهاز الظاهري ثم وضعه في مجلد معين حيث يمكن لـ Discourse العثور عليه؟ لم أجرب هذا، ولكن يبدو أن هذا المجلد المعين سيكون /var/discourse/shared/standalone/backups/default؟

وهل سيتجاوز استخدام S3 موازنات تحميل Amazon بالفعل؟

شكرا!

إعجاب واحد (1)

إذا كان هذا المجلد موجودًا، فمن المحتمل أن يكون هذا هو المكان.

سيفعل.

إعجاب واحد (1)

يتطلب دليل الاستعادة الافتراضي إنشاء مجلد default بحيث يمكن إنشاؤه يدويًا حتى لو لم يكن موجودًا.

مرجع: Restore a backup from the command line

إعجابَين (2)