استخدام Discourse مع Cloudflare
يشرح هذا الدليل كيفية تكوين واستخدام Discourse مع Cloudflare، بما في ذلك أفضل ممارسات الأمان ونصائح استكشاف الأخطاء وإصلاحها.
مستوى المستخدم المطلوب: مسؤول
يلزم الوصول إلى وحدة التحكم للتثبيتات المستضافة ذاتيًا
ملخص
يمكن لـ Cloudflare تعزيز مثيل Discourse الخاص بك من خلال تحسين الأداء عبر شبكة توصيل المحتوى (CDN)، وطبقات أمان إضافية مثل الحماية من هجمات DDoS، ودعم HTTPS. يغطي هذا الدليل عملية الإعداد وأفضل الممارسات للتكوين الأمثل.
لماذا استخدام Cloudflare مع Discourse
يوفر استخدام Cloudflare مع مثيل Discourse الخاص بك العديد من الفوائد الرئيسية:
- الأداء: يمكن لشبكة توصيل المحتوى (CDN) الخاصة بـ Cloudflare تحسين الوصول العالمي إلى الأصول الشائعة، مما يعزز تجربة المستخدم عالميًا (المصدر)
- الأمان: طبقات حماية إضافية تشمل:
- الحماية من هجمات DDoS (المصدر)
- دعم HTTPS (المصدر) (بديل لـ إعداد Let’s Encrypt الخاص بـ Discourse)
بالنسبة للتثبيتات المستضافة ذاتيًا، بينما توفر Cloudflare هذه الفوائد، فإنها تضيف تعقيدًا إلى إعدادك.
إعداد Cloudflare
- تعرف على أساسيات Cloudflare
- اتبع تعليمات الإعداد لتكوين Cloudflare لنطاقك والحصول على فوائد الأمان والأداء والموثوقية
أفضل ممارسات التكوين
إعدادات DNS
- تأكد من أن سجلات DNS التي تشير إلى مثيل Discourse الخاص بك يتم تمريرها عبر الوكيل (proxied).
- يمكن الوصول إلى إعدادات DNS على
dash.cloudflare.com/?to=/:account/:zone/dns
تكوين SSL/TLS
- اضبط وضع التشفير على “Full (strict)”.
- يمكن الوصول إلى إعدادات SSL/TLS على
dash.cloudflare.com/?to=/:account/:zone/ssl-tls
قد يتسبب تكوين SSL/TLS غير الصحيح في حدوث حلقات إعادة توجيه.
تكوين التخزين المؤقت
- اضبط مستوى التخزين المؤقت على “Standard”.
- يمكن الوصول إلى إعدادات التخزين المؤقت على
dash.cloudflare.com/?to=/:account/:zone/caching/configuration
قواعد الصفحة
أنشئ قواعد الصفحة التالية على dash.cloudflare.com/?to=/:account/:zone/rules:
- اضبط مستوى التخزين المؤقت على “Bypass” لـ
community.example.com/session/* - قم بتكوين إعدادات القواعد لتطبيع عناوين URL الواردة.
إعدادات الشبكة
قم بتكوين ما يلي على dash.cloudflare.com/?to=/:account/:zone/network:
تمكين:
- توافق IPv6
- تحديد الموقع الجغرافي لـ IP
- تسجيل أخطاء الشبكة
- التوجيه البصلي (Onion Routing)
تعطيل:
- IPv4 الزائف (Pseudo IPv4)
- تخزين الاستجابة مؤقتًا (Response Buffering)
- رأس True-Client-IP
- gRPC
اضبط الحد الأقصى لحجم التحميل وفقًا لسياسة موقعك (يوصى بـ 100 ميجابايت).
إعدادات جدار حماية تطبيقات الويب (WAF)
إذا كانت خطة Cloudflare الخاصة بك تدعم القواعد المُدارة (Managed Rules)، فأنشئ ما يلي:
-
تجاوز WAF عند إنشاء/تعديل المشاركات:
(http.request.uri.path eq "/posts(/[0-9]+)?" and http.request.method in {"POST" "PUT"}) -
لمستخدمي إضافة Data Explorer، تجاوز WAF عند الاستعلامات الإدارية:
(http.request.uri.path contains "/admin/plugins/explorer/queries/" and http.request.method eq "PUT")
لكلا القاعدتين:
- اختر “تجاوز جميع القواعد المتبقية” (Skip all remaining rules)
- قم بتمكين “تسجيل الطلبات المطابقة” (Log matching requests)
يمكن الوصول إلى إعدادات WAF على dash.cloudflare.com/?to=/:account/:zone/firewall/managed-rules
تحسين المحتوى
قم بتكوين ما يلي على dash.cloudflare.com/?to=/:account/:zone/speed/optimization:
- قم بتمكين Brotli
- قم بتعطيل Rocket Loader™
- قم بتعطيل التصغير التلقائي (Auto Minify)
غالبًا ما تتلقى Discourse تقارير عن تعطل الموقع بسبب تمكين Rocket Loader™
تكوين إضافي للتثبيتات المستضافة ذاتيًا
لضمان إعادة توجيه عنوان IP بشكل صحيح، أضف ما يلي إلى قسم القوالب في ملف containers/app.yml الخاص بك:
- "templates/cloudflare.template.yml"
ذات الصلة: كيف تقوم بإعداد Cloudflare؟
موارد الدعم
استكشاف الأخطاء وإصلاحها
مشكلات سياسة أمان المحتوى (CSP)
إذا واجهت أخطاء CSP:
- تحقق من تعطيل Rocket Loader.
- تحقق من إضافة البرامج النصية بشكل صحيح إلى إعداد الموقع
content security policy script src.
وظيفة OneBox
إذا تم حظر OneBox:
- تحقق مما إذا كان وضع مكافحة الروبوتات الفائقة (Super Bot Fight Mode) ممكّنًا.
- اضبط إعداد “Automated definitely” إذا تم تعيينه على “Managed” أو “Block”.
- فكر في إنشاء قاعدة WAF مخصصة لوكيل مستخدم OneBox.



