إعداد Caddy و Cloudflare لـ Discourse

مرحباً بالجميع،

لقد قمت بإعداد Discourse على community.website.com و WordPress على website.com. أستخدم Caddy كـ reverse proxy مع Let’s Encrypt لإدارة SSL. بعد بعض العقبات الأولية، تمكنت من جعل كل شيء يعمل بسلاسة، بما في ذلك SSL وإعادة التوجيه. لقد اخترت هذا الإعداد بعد العديد من حالات الفشل في محاولة طرق أخرى لتشغيل reverse proxy. كانت المشكلة الأساسية بالنسبة لي هي عدم وجود خبرة سابقة في Docker أو Discourse.

أتفهم أيضاً أنه يمكن أن تكون هناك مشاكل مع التخزين المؤقت و Discourse، لذلك ربما الأقل هو الأفضل أو بعض القواعد لتجنب المشاكل.

الإعداد الحالي:

  • Discourse: يعمل عبر Docker على community.website.com.
  • WordPress: مثبت على website.com.
  • Caddy: يتعامل مع reverse proxy و Let’s Encrypt SSL.
  • Cloudflare: يتم تكوينه لـ DNS، جدار الحماية، و CDN.

التحدي:

عند استخدام Cloudflare DNS بدون وكيل (فقط لـ DNS)، يعمل كل شيء بشكل مثالي - يدير Caddy شهادة Let’s Encrypt SSL، ولا توجد مشاكل.

ومع ذلك، عند التبديل إلى Cloudflare DNS مع تمكين الوكيل، يفشل الاتصال مع خطأ “الموقع معطل” من Cloudflare. لقد قمت بتحديث Caddyfile لاستخدام http:// لكل من الجذر والنطاقات الفرعية وجربت تكوينات SSL متعددة في Cloudflare (Flexible، Full، و Full Strict)، لكنني لم أتمكن من إنشاء اتصال.

السؤال هو كيف يجب أن أقوم بتكوين هذا بحيث يعمل Caddy و Cloudflare مع SSL بشكل جيد مع Discourse؟

نرحب بأي اقتراحات!

إذا كنت تستخدم شبكة توصيل المحتوى (CDN) وخدمات الأمان الخاصة بـ Cloudflare، فلن تحتاج إلى تكوين شهادة SSL خاصة بك على الخادم الأصلي. بدلاً من ذلك، انتقل إلى إعدادات SSL/TLS داخل لوحة تحكم Cloudflare الخاصة بك وأنشئ “شهادة أصلية” (Origin Certificate). ستؤمن هذه الشهادة حركة المرور التي يتم توجيهها من الخادم الأصلي الخاص بك إلى Cloudflare. قم بتثبيت شهادة الأصل هذه على الخادم الأصلي الخاص بك، وسيتم تشغيل كل شيء.

إعجابَين (2)

هل تقوم بتشغيل Caddy و Wordpress على الجهاز المضيف أم كوحدات حاويات Docker؟

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

شكرا لك @shannon1024! هذه أول مرة لتلك الميزة، لكنها كانت سلسة وتعمل الآن.

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

التشغيل على Docker. تم إنشاء دليل في دليل Discourse للشهادات. فوجئت بالعمل من المحاولة الأولى :smile:

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

\u003e الخطوة 5: تكوين Discourse لاستخدام شهادة SSL
\u003e
\u003e 1. قم بتحرير تكوين Discourse NGINX لاستخدام شهادة SSL. عادةً ما يكون هذا الملف موجودًا في /etc/nginx/conf.d/discourse.conf أو داخل الدليل /var/discourse/containers/ إذا كنت تستخدم Docker.
\u003e
\u003e 2. قم بتعديل أو إضافة الأسطر التالية إلى كتلة الخادم:
\u003e
\u003e https://developer.tenten.co/discourse-with-cloudflare-ssl

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

شكرًا مقدمًا على أي مساعدة.