يشحن ديسكورس (Discourse) مع 3 حدود مختلفة لمعدل الطلبات العالمية يمكن لمسؤولي الموقع تكوينها.
حدود معدل الطلبات العالمية لكل عنوان IP
تنطبق هذه الحدود على كل عنوان IP فريد يصل إلى تطبيق ديسكورس. (يتم استبعاد الملفات التي يتم تقديمها مباشرة من نظام الملفات أو شبكة توصيل المحتوى CDN)
بشكل افتراضي، يتم تمكين حد معدل الطلبات هذا، ويمكنك تعطيله أو تعيينه على وضع الإبلاغ.
DISCOURSE_MAX_REQS_PER_IP_MODE: القيمة الافتراضية هي block (حظر)، ينطبق حد معدل الطلبات هذا مباشرة. (الخيارات الأخرى هي warn (تحذير)، وwarn+block (تحذير+حظر)، وnone (لا شيء))
DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE: عدد الطلبات لكل عنوان IP في الدقيقة (الافتراضي هو 200)
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: عدد الطلبات لكل عنوان IP كل 10 ثوانٍ (الافتراضي هو 50)
DISCOURSE_MAX_ASSET_REQS_PER_IP_PER_10_SECONDS: عدد طلبات الأصول (الصور الرمزية/ملفات CSS) لكل عنوان IP كل 10 ثوانٍ (الافتراضي هو 200)
DISCOURSE_MAX_REQS_RATE_LIMIT_ON_PRIVATE: هل يجب أن ينطبق حد معدل الطلبات على عناوين IP الخاصة التي تصل إلى ديسكورس؟ الافتراضي هو خطأ.
DISCOURSE_SKIP_PER_IP_RATE_LIMIT_TRUST_LEVEL: استخدام حدود معدل الطلبات لكل مستخدم مقابل حدود معدل الطلبات لكل عنوان IP للمستخدمين الذين لديهم مستوى الثقة هذا أو أعلى (الافتراضي هو 1)
DISCOURSE_MAX_REQS_PER_IP_EXCEPTIONS: قائمة مفصولة بمسافات لعناوين IP أو كتل CIDR مستثناة من تحديد معدل الطلبات لكل عنوان IP. على سبيل المثال: 14.15.16.32/27 216.148.1.2
حدود معدل طلبات واجهة برمجة تطبيقات المستخدم (User API)
تكتسب تطبيقات الهاتف المحمول مفتاح واجهة برمجة تطبيقات للمستخدم لكل جهاز للوصول إلى ديسكورس نيابة عن مستخدم (باستخدام بروتوكول مفتوح). هذه المفاتيح لواجهة برمجة تطبيقات المستخدم محدودة للغاية.
DISCOURSE_MAX_USER_API_REQS_PER_MINUTE: الافتراضي 20
DISCOURSE_MAX_USER_API_REQS_PER_DAY: الافتراضي 2880
حدود معدل طلبات واجهة برمجة تطبيقات المسؤول (Admin API)
يمكن إنشاء مفاتيح واجهة برمجة تطبيقات المسؤول عبر صفحة yoursite.com/admin/api/keys. يمكن لهذه المفاتيح العمل نيابة عن المستخدمين، ولكنها تتطلب امتيازات إدارية لإنشائها. يوجد حد قدره 60 طلبًا في الدقيقة، مشترك بين جميع المفاتيح.
يمكن للمستخدمين المستضافين ذاتيًا تغيير هذا في ملف app.yml الخاص بهم. سيحتاج العملاء المستضافون إلى الاتصال بمزود الاستضافة الخاص بهم.
DISCOURSE_MAX_ADMIN_API_REQS_PER_MINUTE: 60
حدود معدل طلبات واجهة برمجة تطبيقات الإضافة مستكشف البيانات (Data Explorer Plugin)
DISCOURSE_MAX_DATA_EXPLORER_API_REQ_MODE: القيمة الافتراضية هي warn (تحذير)، ينطبق حد معدل الطلبات هذا مباشرة. (الخيارات الأخرى هي block (حظر)، وwarn+block (تحذير+حظر)، وnone (لا شيء))
DISCOURSE_MAX_DATA_EXPLORER_API_REQS_PER_10_SECONDS: 2
ملاحظة: الطلبات التي تتم عبر واجهة مستخدم مستكشف البيانات لا تُحتسب ضمن حد معدل الطلبات.
ماذا أفعل إذا وصلت إلى حد معدل الطلبات وتم تقييدي؟
إذا كنت تستهلك واجهة برمجة التطبيقات برمجيًا وتتلقى رمز حالة 429 للرد بالتقييد، فيجب عليك احترامه والتباطؤ.
كمستخدم نهائي، لا ينبغي أن تواجه حدودًا لمعدل الطلبات حقًا، وإذا واجهتها، فتباطأ. قد تؤدي إلى تشغيلها عن طريق فتح 50 علامة تبويب بسرعة أو القيام بشيء من هذا القبيل.
تحذير بشأن جدار الحماية والوكيل! 
إذا كنت تستخدم وكيلًا عكسيًا (reverse proxy) غير مُكوَّن بشكل صحيح، فقد يعتقد ديسكورس أن جميع الطلبات قادمة من عنوان IP واحد، ومن المحتمل جدًا أن تصل إلى حدود معدل الطلبات مبكرًا. تأكد من تكوين الوكيل العكسي الخاص بك لإعادة توجيه عنوان IP بشكل صحيح.
كيف أقوم بتعديل هذه الحدود؟
لتعديل الحدود، أضف التغيير المطلوب في ملف app.yml الخاص بك في قسم env.
إذا كنت مستضافًا بواسطة ديسكورس، وكنت على خطة المؤسسات (Enterprise)، فاتصل بـ team@discourse.org إذا كنت بحاجة إلى تعديل أي من هذه الحدود.
لا يمكن تعديل حدود معدل الطلبات العالمية على خطط المبتدئ (starter) أو المحترف (pro) أو الأعمال (business).