تفعيل شبكة توصيل محتوى (CDN) لـ Discourse الخاص بك

إذن لن تتم مزامنة الملفات مع نظامي، فـ CloudFront يقوم فقط بتخزينها مؤقتًا. هل فهمي صحيح؟

3 إعجابات

نعم، هذا صحيح. يحصل CDN على الأصول المطلوبة فقط من موقعك.

سيقوم Discourse بنشر الأصول الثابتة (مثل ملفات CSS وJavaScript) إلى S3، بالإضافة إلى الملفات المرفوعة.

4 إعجابات

هل من الممكن استخدام قواعد Cloudflare لتخزين الأصول الثابتة مثل ملفات CSS وJavaScript مؤقتًا؟

إعجابَين (2)

نعم، نستخدمها بهذه الطريقة وتعمل بشكل جيد. فقط كن حذرًا جدًا في تعطيل أي تحسينات لـ JavaScript. يمكنك رؤية إعداداتنا هنا:

4 إعجابات

شكرًا على ردك.

لقد أضفت بالفعل القاعدة الثانية والثالثة، لكنني لم أفهم القاعدة الأولى. ما الحاجة إلى إعادة توجيه 301؟

إعجابَين (2)

لست بحاجة إليه؛ فهو موجود في الوصف.

3 إعجابات

شكرًا على الرد. ماذا بشأن الأصول الثابتة مثل ملفات CSS وJavaScript؟ هل توجد قاعدة ممكنة لـ CSS وJavaScript؟

إعجابَين (2)

لم أجرب ذلك. لست متأكدًا من أنه سيعمل. على أقل تقدير، ستحتاج إلى مسح ذاكرة التخزين المؤقت لـ Cloudflare بعد كل عملية إعادة بناء.

إعجابَين (2)

لا بأس عندي بمسح الذاكرة المؤقتة بعد كل عملية إعادة بناء. فماذا يمكن أن يحدث خطأ لو وضعت قاعدة لتخزين كل شيء في https://myforum.com/assets/؟ هل سيؤثر هذا على تسجيل دخول المستخدم بأي حال؟ إذا أشرت بالموافقة، فسأختبر ذلك لمدة أسبوع وأبلغك بالنتائج. لا يزال لدي قاعدة واحدة غير مستخدمة.

إعجابَين (2)

فقط للتوضيح، هل من الصحيح أننا لا نستخدم هذا الحقل (وكذلك عنوان URL الخاص بشبكة توصيل المحتوى) إذا كنا نستخدم شبكة Cloudflare لتوصيل المحتوى؟

لقد قمت بإعداد ملف cloudflare.template في ملف app.yml وفقًا للوثائق.

هل هناك أي إعدادات إضافية مطلوبة عند استخدام Cloudflare؟

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

لقد استخدمت StackPath بنجاح كشبكة توصيل محتوى (CDN). يعمل كما هو متوقع!

إعجابَين (2)

هل ما زال هذا هو الحال في الوقت الحاضر؟

من عام 2019:

يبدو أنه يتعين علينا توخي الحذر الشديد وأننا نفقد بعضًا من فوائد Cloudflare.

من عام 2020:

من عام 2021:

إذًا، هل Cloudflare موثوق وفعال مع Discourse اليوم؟ هل تعطيل ميزة “Rocket Loader” يقلل من الفوائد؟

كنت أفكر في الانتقال من Stackpath إلى Bunny CDN، لكن مالك نطاق المنتدى الخاص بي والمسؤول السابق لديه حساب Cloudflare Enterprise (وهو مالك tinyURL بالمناسبة) يمكنه إضافة النطاق إليه مجانًا (Looking for a decrease in the forum fees in the future - #6 by Gilby - Forum Feedback - Unicyclist.com).

لذلك، أتساءل عما إذا كان من الصحيح وسهل وفعال استخدام Cloudflare بدلاً من Bunny CDN.

إعجابَين (2)

إذا كان لديك الكثير من الصور، فإن ما ستنفقه على زيادة مساحة SSD المتصلة مباشرة سيكون أغلى بكثير من التكاليف المكافئة لـ S3.

تحتاج S3 إلى شبكة توصيل محتوى (CDN) أمامها لتكون فعالة من حيث التكلفة حيث يتم فوترتك على الدخول والخروج، ولكنها لا تزال أرخص بكثير من مجرد إضافة المزيد من أقراص SSD عالية السرعة. يمكن لـ CloudFlare أن تكون أمام S3، ولكن تخزين الأصول مؤقتًا هي الميزة الوحيدة التي يمكنك استخدامها بشكل موثوق. وضع CloudFlare بين العميل وخادم التطبيق سيزيد أيضًا من عدد القفزات ويرفع زمن استجابة التطبيق. إنها ليست حلاً سحريًا.

إعجابَين (2)

نحن لا نعتمد على الصور بكثافة. الهدف من شبكة توصيل المحتوى (CDN) هو تحميل الأصول بسرعة لكل مستخدم نظرًا لأن مجتمعنا دولي (بشكل أساسي الولايات المتحدة وأوروبا).

نحن نستخدم S3، ولكن فقط لتخزين النسخ الاحتياطية.

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

سؤال سريع. هل إعادة الخبز إلزامية بعد تغيير شبكة توصيل المحتوى (CDN) الخاصة بنا؟ أم أنها فقط إذا كان عنوان URL الخاص بشبكة توصيل المحتوى مختلفًا؟ أم أنها غير مطلوبة على الإطلاق؟


تعديل: أو هل من الممكن ببساطة استبدال عناوين URL القديمة في المنشورات المخبوزة بالجديدة باستخدام نص برمجي لـ Rails؟

على سبيل المثال، إذا كان لدي منشور يحتوي على:

<img class="ytp-thumbnail-image"
src="https://f5i4i8k5.stackpathcdn.com/uploads/default/original/3X/f/3/f3bc5ab19cc0394f33fd008e90ca06e081886a0b.jpeg"
title="Riding a unicycle part 76: Sullivan Canyon - Los Angeles"
width="480"
height="360"
loading="lazy"
style="aspect-ratio: 480 / 360;">

هل يمكنني إجراء بحث واستبدال للسلاسل النصية من f5i4i8k5.stackpathcdn.com إلى newcdn.unicyclist.com دون كسر أي شيء؟ يبدو الأمر آمنًا، لكنني أريد التأكد مما أفعله.

لا أمانع في إعادة خبز جميع منشوراتي، لكن المشكلة التي واجهتها في المرة الأولى هي أن لدي آلاف مقاطع الفيديو المضمنة على يوتيوب، وتم إدراج عنوان IP الخاص بي في القائمة السوداء بواسطة يوتيوب أثناء إعادة الخبز بسبب كثرة الطلبات إلى يوتيوب.

لذلك، إذا كان هناك بديل آمن لإعادة خبز جميع المنشورات ومواجهة نفس المشكلة المزعجة، فسأفضل الذهاب إلى البديل…

3 إعجابات

هناك مهمة معول (rake task) ستقوم بالاستبدال. أعتقد أن تشغيلها آمن وفكرة جيدة. استبدال سلسلة نصية في جميع المشاركات هو ما تبحث عنه، على ما أعتقد.

إعجابَين (2)

مرحباً جاي،

لست متأكداً من استخدام مهمة rake.
تبدو عناوين URL الخاصة بشبكة توصيل المحتوى (CDN) موجودة في حقول cooked بدلاً من حقول raw (إلا إذا تم إرسال الرسالة عبر البريد الإلكتروني).
على حد فهمي، يبحث post:remap عن السلسلة النصية في حقل raw فقط.

إذا كان استبدال عناوين URL الخاصة بشبكة توصيل المحتوى (CDN) في كل من حقلي raw و cooked آمناً، أعتقد أنه يجب عليّ استخدام نص برمجي مخصص لـ Rails؟

إعجابَين (2)

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

إعجابَين (2)

شكرا لك على هذه المعلومة!

أعتقد أنها هذه؟

DbHelper.remap('from', 'to')

تم العثور عليها في Rebaking old posts won't pull new S3 CDN URL after S3 bucket rename - #10 by Brad_Wood

وتم استخدامها هنا:

إذا كانت بديلاً آمنًا لإعادة الخبز عند تغيير خدمة CDN الخاصة بنا، فقد يكون دليل howto مفيدًا بالفعل.

3 إعجابات

يا له من خبر سار. شكراً لإعلامي. اعتقدت أن هذا سيكون كافياً لك للعثور عليه. سعيد لأنك حصلت عليه.

3 إعجابات