البدء
ستحتاج إلى:
- مثيل Discourse مع وصول إلى ملف app.yml
- حساب AWS
استراتيجية التسمية
هناك العديد من الأماكن التي قد ترتكب فيها أخطاء. سيساعدك استخدام استراتيجية تسمية منطقية لك ولغيرك في استكشاف الأخطاء وإصلاحها، خاصة إذا كنت تقوم بتكوين مثيلات Discourse متعددة.
- مستخدم IAM: مستخدم-iam-خاص-بك
- السياسة: سياسة-s3-discourse-مستخدم-iam-خاص-بك
- حاوية النسخ الاحتياطي: نطاق-كامل-نطاق-فرعي-نسخ-احتياطي
- حاوية التحميلات: نطاق-كامل-نطاق-فرعي-تحميلات
- شبكات توزيع المحتوى (CDNs): cdn-نطاق-كامل-نطاق-فرعي و s3-نطاق-كامل-نطاق-فرعي-تحميلات
اختياري: حاوية عملية التكوين: a-origin-config-bucket
تكوين AWS
استخدم الإعدادات الافتراضية في صفحات تكوين AWS ما لم يُطلب منك غير ذلك.
أسماء S3، الأسماء، الأسماء
- نطاق مثيل Discourse: نطاق-فرعي.نطاق-كامل.امتداد (نطاق-فرعي.نطاق-كامل.امتداد بما في ذلك www.نطاق-كامل.امتداد)
- مستخدم IAM: نطاق-كامل-نطاق-فرعي (نطاق-كامل-discourse، نطاق-كامل-forum أو Discourse في القمة/الجذر: نطاق-كامل-امتداد-www)
- سياسة مستخدم IAM: سياسة-s3-discourse-نطاق-كامل-نطاق-فرعي
- حاوية التحميلات: نطاق-كامل-نطاق-فرعي-تحميلات ملاحظة: لا تنسَ تعيين “الجميع (الوصول العام)” إلى “قراءة” في الحاوية>الأذونات: قائمة التحكم في الوصول (ACL) - قائمة التحكم في الوصول (ACL) - المستفيد.
- حاوية النسخ الاحتياطي: نطاق-كامل-نطاق-فرعي-نسخ-احتياطي
- شبكات توزيع المحتوى (CDNs): cdn-نطاق-كامل-نطاق-فرعي و s3-نطاق-كامل-نطاق-فرعي-تحميلات
- حاوية عملية التكوين: a-origin-config-bucket
مستخدمو IAM
- انتقل إلى IAM > مستخدمون > حدد “إنشاء مستخدم”
- IAM > مستخدمون > إنشاء مستخدم > تحديد تفاصيل المستخدم > تفاصيل المستخدم > اسم المستخدم > أدخل الاسم أي مستخدم-iam-خاص-بك > حدد “التالي”
- IAM > مستخدمون > إنشاء مستخدم > تعيين الأذونات > خيارات الأذونات > حدد “إرفاق السياسات مباشرة” > حدد “إنشاء سياسة” > تفتح صفحة إنشاء السياسة (بدلاً من ذلك، يمكن إنشاء السياسة أولاً في السياسات ثم تحديدها عند إنشاء المستخدم في “سياسات الأذونات”.)
- IAM > مستخدمون > إنشاء مستخدم > تعيين الأذونات > سياسات الأذونات > تصفية حسب القائمة المنسدلة “النوع” > حدد “إدارة العملاء” > حدد السياسة الجديدة التي تم إنشاؤها > حدد “التالي” > حدد “إنشاء مستخدم”
- IAM > مستخدمون > مستخدم-iam-خاص-بك > بيانات الاعتماد الأمنية > مفاتيح الوصول > حدد “إنشاء مفتاح وصول”
- IAM > مستخدمون > مستخدم-iam-خاص-بك > إنشاء مفتاح وصول > أفضل الممارسات والمزايا البديلة لمفتاح الوصول > حدد “آخر” > حدد “التالي”
- IAM > مستخدمون > مستخدم-iam-خاص-بك > إنشاء مفتاح وصول > تعيين وسم الوصف > حدد “إنشاء مفتاح وصول”
- IAM > مستخدمون > مستخدم-iam-خاص-بك > إنشاء مفتاح وصول > استرداد مفاتيح الوصول > احفظ مفتاح الوصول ومفتاح الوصول السري بأمان لاستخدامهما في ملف app.yml الخاص بـ Discourse > حدد “تم”
السياسات
- قم بتعديل s3-discourse-policy-your-iam-user.txt باستخدام اسم مستخدم IAM وأسماء الحاويات الخاصة بك.
- انتقل إلى IAM > السياسات > إنشاء سياسة
- IAM > السياسات > إنشاء سياسة > تحديد الأذونات > محرر السياسة > حدد “JSON” في محرر السياسة > انسخ السياسة من s3-discourse-policy-your-iam-user.txt والصقها في محرر JSON مع استبدال JSON الموجود > حدد “التالي”
- IAM > السياسات > إنشاء سياسة > مراجعة وإنشاء > تفاصيل السياسة > اسم السياسة > أدخل اسم السياسة أي s3-discourse-policy-your-iam-user > حدد “التالي”
- انتقل إلى مستخدمو IAM: 4. IAM > مستخدمون > إنشاء مستخدم للمتابعة في عملية إنشاء المستخدم
حاويات Amazon S3
قم بإنشاء وتكوين حاوية النسخ الاحتياطي، وحاوية التحميلات، وحاوية عملية التكوين الاختيارية ولكنها مفيدة.
إنشاء حاوية النسخ الاحتياطي نطاق-كامل-نطاق-فرعي-نسخ-احتياطي
- انتقل إلى Amazon S3 حاويات > حدد “إنشاء حاوية”
- Amazon S3 > حاويات > إنشاء حاوية > التكوين العام > تأكيد اختيار “عام الغرض”
- Amazon S3 > حاويات > إنشاء حاوية > التكوين العام > اسم الحاوية > أدخل اسم حاوية النسخ الاحتياطي أي نطاق-كامل-نطاق-فرعي-نسخ-احتياطي
- Amazon S3 > حاويات > إنشاء حاوية > التكوين العام > تأكيد اختيار “قوائم التحكم في الوصول معطلة (موصى بها)”
- Amazon S3 > حاويات > إنشاء حاوية > إعدادات منع الوصول العام لهذه الحاوية > إلغاء تحديد “منع جميع الوصول العام” ثم تحديد “منع الوصول العام إلى الحاويات والكائنات الممنوحة من خلال سياسات حاوية أو نقطة وصول عامة جديدة” و “منع الوصول العام وعبر الحسابات إلى الحاويات والكائنات من خلال أي سياسة حاوية أو نقطة وصول عامة”
- Amazon S3 > حاويات > إنشاء حاوية > إعدادات منع الوصول العام لهذه الحاوية > قد يؤدي إيقاف تشغيل منع جميع الوصول العام إلى جعل هذه الحاوية والكائنات الموجودة داخلها عامة > حدد “أقر بأن الإعدادات الحالية قد تؤدي إلى جعل هذه الحاوية والكائنات الموجودة داخلها عامة.”
- Amazon S3 > حاويات > إنشاء حاوية > إصدارات الحاوية > إصدارات الحاوية > حدد “تفعيل” معلومة: إصدارات الحاوية مطلوبة لـ “قواعد دورة الحياة”
- Amazon S3 > حاويات > إنشاء حاوية > حدد “إنشاء حاوية”
تكوين قواعد دورة الحياة
قاعدة الاحتفاظ بالنسخ الاحتياطي
- Amazon S3 > حاويات > حدد الحاوية التي تم إنشاؤها حديثًا أي نطاق-كامل-نطاق-فرعي-نسخ-احتياطي
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > حدد “إنشاء قاعدة دورة حياة”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > اسم قاعدة دورة الحياة > أدخل اسم القاعدة أي الاحتفاظ بالنسخ الاحتياطي
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > تحديد نطاق القاعدة > حدد “تطبيق على جميع الكائنات في الحاوية”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > تحديد نطاق القاعدة > تطبيق على جميع الكائنات في الحاوية > حدد “أقر بأن هذه القاعدة ستطبق على جميع الكائنات في الحاوية.”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > إجراءات قاعدة دورة الحياة > حدد “نقل الإصدارات غير الحالية للكائنات بين فئات التخزين”، “انتهاء صلاحية الإصدارات الحالية للكائنات”، و “حذف الإصدارات غير الحالية للكائنات نهائيًا”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > إجراءات قاعدة دورة الحياة > يتم تحصيل رسوم النقل لكل طلب > حدد “أقر بأن قاعدة دورة الحياة هذه ستترتب عليها تكلفة نقل لكل طلب.”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > نقل الإصدارات غير الحالية للكائنات بين فئات التخزين > اختيار انتقالات فئة التخزين > حدد “Glacier Instant Retrieval”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > نقل الإصدارات غير الحالية للكائنات بين فئات التخزين > الأيام بعد أن تصبح الكائنات غير حالية > أدخل “1”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > انتهاء صلاحية الإصدارات الحالية للكائنات > الأيام بعد إنشاء الكائن > أدخل “7” أو 15 أو 30 أو ???
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > حذف الإصدارات غير الحالية للكائنات نهائيًا > الأيام بعد أن تصبح الكائنات غير حالية > أدخل “91”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > تأكيد صحة “مراجعة إجراءات النقل والانتهاء” > حدد “إنشاء قاعدة”
قاعدة التنظيف
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > حدد “إنشاء قاعدة دورة حياة”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > اسم قاعدة دورة الحياة > أدخل اسم القاعدة تنظيف
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > تحديد نطاق القاعدة > حدد “تطبيق على جميع الكائنات في الحاوية”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > تحديد نطاق القاعدة > تطبيق على جميع الكائنات في الحاوية > حدد “أقر بأن هذه القاعدة ستطبق على جميع الكائنات في الحاوية.”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > إجراءات قاعدة دورة الحياة > حدد “حذف الإصدارات غير الحالية للكائنات نهائيًا” و “حذف علامات حذف الكائنات المنتهية الصلاحية أو عمليات التحميل المتعددة غير المكتملة”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > حذف الإصدارات غير الحالية للكائنات نهائيًا > الأيام بعد أن تصبح الكائنات غير حالية > أدخل “92”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > حذف الإصدارات غير الحالية للكائنات نهائيًا > حذف علامات حذف الكائنات المنتهية الصلاحية أو عمليات التحميل المتعددة غير المكتملة > علامات حذف الكائنات المنتهية الصلاحية > حدد “حذف علامات حذف الكائنات المنتهية الصلاحية”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > حذف الإصدارات غير الحالية للكائنات نهائيًا > حذف علامات حذف الكائنات المنتهية الصلاحية أو عمليات التحميل المتعددة غير المكتملة > عمليات التحميل المتعددة غير المكتملة > حدد “حذف عمليات التحميل المتعددة غير المكتملة”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > حذف الإصدارات غير الحالية للكائنات نهائيًا > حذف علامات حذف الكائنات المنتهية الصلاحية أو عمليات التحميل المتعددة غير المكتملة > عمليات التحميل المتعددة غير المكتملة > حذف عمليات التحميل المتعددة غير المكتملة > عدد الأيام > أدخل “3” أو ???
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-نسخ-احتياطي > الإدارة > تكوين دورة الحياة > تأكيد صحة “مراجعة إجراءات النقل والانتهاء” > حدد “إنشاء قاعدة”
إنشاء حاوية التحميلات نطاق-كامل-نطاق-فرعي-تحميلات
- انتقل إلى Amazon S3 > حاويات > حدد “إنشاء حاوية”
- Amazon S3 > حاويات > إنشاء حاوية > التكوين العام > تأكيد اختيار “عام الغرض”
- Amazon S3 > حاويات > إنشاء حاوية > التكوين العام > اسم الحاوية > أدخل اسم حاوية التحميلات أي نطاق-كامل-نطاق-فرعي-تحميلات
- Amazon S3 > حاويات > إنشاء حاوية > التكوين العام حدد “قوائم التحكم في الوصول مفعلة”
- Amazon S3 > حاويات > إنشاء حاوية > إعدادات منع الوصول العام لهذه الحاوية > إلغاء تحديد “منع جميع الوصول العام” ثم تحديد “منع الوصول العام إلى الحاويات والكائنات الممنوحة من خلال سياسات حاوية أو نقطة وصول عامة جديدة” و “منع الوصول العام وعبر الحسابات إلى الحاويات والكائنات من خلال أي سياسة حاوية أو نقطة وصول عامة”
- Amazon S3 > حاويات > إنشاء حاوية > إعدادات منع الوصول العام لهذه الحاوية > قد يؤدي إيقاف تشغيل منع جميع الوصول العام إلى جعل هذه الحاوية والكائنات الموجودة داخلها عامة > حدد “أقر بأن الإعدادات الحالية قد تؤدي إلى جعل هذه الحاوية والكائنات الموجودة داخلها عامة.”
- Amazon S3 > حاويات > إنشاء حاوية > حدد “إنشاء حاوية”
- Amazon S3 > حاويات > شاشة الحاويات > حدد الحاوية التي تم إنشاؤها حديثًا أي نطاق-كامل-نطاق-فرعي-تحميلات
العودة للقيام بالخطوة 9 بعد إنشاء التوزيع رقم 2 - Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-تحميلات > الأذونات > سياسة الحاوية > حدد تعديل > الصق JSON من إنشاء التوزيع رقم 2 11. CloudFront > التوزيعات > معرف التوزيع > تعديل المصدر > تحكم الوصول إلى المصدر > حدد “حفظ التغييرات”
- Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-تحميلات > الأذونات > قائمة التحكم في الوصول (ACL) > حدد تعديل > الجميع (الوصول العام) > حدد “قراءة” > عند منح الوصول إلى مجموعة الجميع أو المستخدمين الموثوقين، يمكن لأي شخص في العالم الوصول إلى الكائنات في هذه الحاوية. حدد “أفهم تأثير هذه التغييرات على كائناتي وحاوياتي.” > حدد “حفظ التغييرات”
إنشاء حاوية عملية التكوين a-origin-config-bucket
قم بإنشاء حاوية تُستخدم أثناء عملية تكوين التوزيع رقم 1. الاسم والتكوين غير مهمين لأن الحاوية تُستخدم مؤقتًا فقط كمصدر أولي سيتم حذفه أثناء عملية التكوين.
1. انتقل إلى Amazon S3 > حاويات > حدد “إنشاء حاوية”
2. Amazon S3 > حاويات > إنشاء حاوية > التكوين العام > تأكيد اختيار “عام الغرض”
3. Amazon S3 > حاويات > إنشاء حاوية > التكوين العام > اسم الحاوية > أدخل اسم حاوية التحميلات أي a-origin-config-bucket
4. انتقل عبر صفحات التكوين و “إنشاء حاوية”
توزيعات CloudFront
قم بإنشاء توزيعين AWS S3 Cloudfront. أحدهما لخدمة أصول الموقع والثاني لخدمة أصول حاوية التحميلات.
إنشاء التوزيع رقم 1
التوزيع رقم 1
DISCOURSE_CDN_URL
اسم التوزيع: cdn-نطاق-كامل-نطاق-فرعي
المصدر: نطاق-فرعي.نطاق-كامل.امتداد
اسم نطاق التوزيع (عنوان URL لـ Cloudfront): AWS-assigned.cloudfront.net
أسماء نطاقات بديلة: discourse-cdn.نطاق-كامل.امتداد
- انتقل إلى CloudFront > التوزيعات > حدد “إنشاء”
- CloudFront > التوزيعات > إنشاء توزيع > اختيار خطة > حدد “ادفع حسب الاستخدام” > حدد “التالي”
- CloudFront > التوزيعات > إنشاء توزيع > ابدأ > خيارات التوزيع > اسم التوزيع > أدخل اسم التوزيع أي cdn-نطاق-كامل-نطاق-فرعي
- CloudFront > التوزيعات > إنشاء توزيع > ابدأ > خيارات التوزيع > الوصف - اختياري > أدخل “cdn-نطاق-كامل-نطاق-فرعي” (اختياري لكنه يساعد في الرؤية)
- CloudFront > التوزيعات > إنشاء توزيع > ابدأ > خيارات التوزيع > نوع التوزيع > تأكيد اختيار “موقع ويب واحد أو تطبيق” > حدد “التالي”
- CloudFront > التوزيعات > إنشاء توزيع > تحديد المصدر > نوع المصدر > حدد “آخر” راجع أي مصدر AWS أو غير AWS من خلال عنوان URL القابل للحل علنًا.
- CloudFront > التوزيعات > إنشاء توزيع > تحديد المصدر > المصدر > مصدر مخصص > أدخل النطاق أي نطاق-فرعي.نطاق-كامل.امتداد
- CloudFront > التوزيعات > إنشاء توزيع > تحديد المصدر > الإعدادات > إعدادات التخزين المؤقت > حدد “تخصيص إعدادات التخزين المؤقت”
- CloudFront > التوزيعات > إنشاء توزيع > تحديد المصدر > الإعدادات > إعدادات التخزين المؤقت > سياسة التخزين المؤقت > من القائمة المنسدلة حدد “CachingOptimized” > حدد “التالي”
- CloudFront > التوزيعات > إنشاء توزيع > تفعيل الأمان > قم باختيارك - لهذه الدليل > حدد “لا تفعّل إجراءات الحماية الأمنية” > حدد “التالي”
- CloudFront > التوزيعات > إنشاء توزيع > مراجعة وإنشاء > حدد “إنشاء توزيع”
إذا كنت تستخدم عنوان URL لـ CDN مميز → الخطوة 12 - CloudFront > التوزيعات > معرف التوزيع > أسماء نطاقات بديلة > حدد “إضافة نطاق”
- CloudFront > التوزيعات > معرف التوزيع > أسماء نطاقات بديلة > إضافة نطاق > تكوين النطاقات > النطاقات > النطاقات للخدمة > أدخل DISCOURSE_CDN_URL أي discourse-cdn.نطاق-كامل.امتداد > حدد “التالي”
غير مكتمل: أسماء نطاقات بديلة: discourse-cdn.نطاق-كامل.امتداد
إنشاء التوزيع رقم 2
التوزيع رقم 2
DISCOURSE_S3_CDN_URL
اسم التوزيع: s3-نطاق-كامل-نطاق-فرعي-تحميلات
المصدر: نطاق-كامل-نطاق-فرعي-تحميلات
اسم نطاق التوزيع (عنوان URL لـ Cloudfront: AWS-assigned.cloudfront.net
أسماء نطاقات بديلة: s3-cdn.نطاق-كامل.امتداد
- CloudFront > التوزيعات > إنشاء توزيع
- CloudFront > التوزيعات > إنشاء توزيع > اختيار خطة > حدد “ادفع حسب الاستخدام” > حدد “التالي”
- CloudFront > التوزيعات > إنشاء توزيع > ابدأ > خيارات التوزيع > اسم التوزيع > أدخل اسم التوزيع أي s3-نطاق-كامل-نطاق-فرعي-تحميلات
- CloudFront > التوزيعات > إنشاء توزيع > ابدأ > خيارات التوزيع > الوصف - اختياري > أدخل “s3-نطاق-كامل-نطاق-فرعي-تحميلات” (اختياري لكنه يساعد في الرؤية)
- CloudFront > التوزيعات > إنشاء توزيع > ابدأ > خيارات التوزيع > نوع التوزيع > تأكيد اختيار “موقع ويب واحد أو تطبيق” > حدد “التالي”
- CloudFront > التوزيعات > إنشاء توزيع > تحديد المصدر > نوع المصدر > تأكيد اختيار “Amazon S3”
- CloudFront > التوزيعات > إنشاء توزيع > تحديد المصدر > المصدر > مصدر S3 > حدد “تصفح S3” > حدد حاوية التحميلات “نطاق-كامل-نطاق-فرعي-تحميلات” > حدد “اختر” > حدد “التالي”
- CloudFront > التوزيعات > إنشاء توزيع > تفعيل الأمان > قم باختيارك - لهذه الدليل > حدد “لا تفعّل إجراءات الحماية الأمنية” > حدد “التالي”
- CloudFront > التوزيعات > إنشاء توزيع > مراجعة وإنشاء > تأكيد صحة "مراجعة وإنشاء: صحيحة > حدد “إنشاء توزيع” → يجب أن تفتح صفحة معلومات التوزيع الجديد في CloudFront > التوزيعات > معرف التوزيع
- CloudFront > التوزيعات > معرف التوزيع > المصادر > حدد المصدر > حدد “تعديل”
- CloudFront > التوزيعات > معرف التوزيع > تعديل المصدر > تحكم الوصول إلى المصدر > ! يجب السماح بوصول CloudFront باستخدام هذه السياسة… > حدد “نسخ السياسة” > انتقل إلى إنشاء حاوية التحميلات 9. Amazon S3 > حاويات > نطاق-كامل-نطاق-فرعي-تحميلات > الأذونات > سياسة الحاوية
غير مكتمل: أسماء نطاقات بديلة: s3-cdn.نطاق-كامل.امتداد
مسؤول Discourse
حاليًا اعتبارًا من إصدار Discourse: 2025.12.0-latest
قم بإجراء هذه التغييرات في واجهة المسؤول الخاصة بـ Discourse
إعدادات النسخ الاحتياطي /admin/backups/settings
- الحد الأقصى للنسخ الاحتياطية > أدخل عدد النسخ الاحتياطية المراد الاحتفاظ بها محليًا
- النسخ الاحتياطي مع التحميلات > حدد “تضمين التحميلات في النسخ الاحتياطية المجدولة. سيؤدي تعطيل هذا إلى نسخ قاعدة البيانات فقط احتياطيًا.”
إعدادات S3 /admin/site_settings/category/all_results?filter=S3
- استخدام عنوان URL لـ CDN من S3 لجميع التحميلات > حدد “استخدام عنوان URL لـ CDN لجميع الملفات المرفوعة إلى s3 بدلاً من الصور فقط.” (يتم شحن Discourse دون تحديد هذا الخيار)
تعديل التكوين (app.yml) عناوين URL غير مميزة
قم بتعديل ملف app.yml بإجراء التغييرات أدناه لعناوين URL المميزة أو عناوين URL غير المميزة لـ Cloudfront.
عناوين URL غير مميزة لـ Discourse
استخدم هذا للتوزيعات غير المميزة لـ Cloudfront. قد يكون DISCOURSE_S3_REGION مختلفًا.
DISCOURSE_CDN_URL: https://amazonassigned.cloudfront.net
تكوين تخزين S3 (غير مميز)
## تكوين تخزين S3
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: us-east-1
DISCOURSE_S3_ACCESS_KEY_ID: مفتاح مخفي
DISCOURSE_S3_SECRET_ACCESS_KEY: مفتاح مخفي
DISCOURSE_S3_CDN_URL: https://amazonassigned.cloudfront.net
DISCOURSE_S3_BUCKET: اسم-حاويتك-تحميلات
DISCOURSE_S3_BACKUP_BUCKET: اسم-حاويتك-نسخ-احتياطي
DISCOURSE_BACKUP_LOCATION: s3
عناوين URL مميزة لـ Discourse
تكوين DNS
إذا كنت تفضل استخدام عناوين URL بناءً على نطاق-كامل.كوم للتوزيعات، فأنت بحاجة إلى إجراء بعض التغييرات على DNS وتعديل عناوين URL الخاصة بـ CDN.
نصيحة: لا تنسَ إضافة discourse-cdn.نطاق-كامل.كوم و s3-cdn.نطاق-كامل.كوم كاسم نطاق في “أسماء نطاقات بديلة” لتوزيعات CloudFront الخاصة بها.
تكوين DNS إذا كنت تريد استخدام توزيعات CloudFront مميزة للنطاق.
DISCOURSE_CDN_URL
سجل موجود: A discourseinstance.نطاق-كامل.كوم عنوان IP للمثيل ملاحظة: هذا هو عنوان IP المثبت الحالي لـ Discourse.
سجل جديد: A discourse-cdn-cloudfront.نطاق-كامل.كوم عنوان IP للمثيل
سجل جديد: CNAME discourse-cdn.نطاق-كامل.كوم -> amazonassigned.cloudfront.net
DISCOURSE_S3_CDN_URL
سجل جديد: CNAME s3-cdn-cloudfront.نطاق-كامل.كوم -> amazonassigned.cloudfront.net
سجل جديد: CNAME s3-cdn.نطاق-كامل.كوم -> s3-cdn-cloudfront.نطاق-كامل.كوم
تعديل التكوين (app.yml) عناوين URL مميزة
بمجرد اكتمال تغييرات DNS، يمكنك تعديل ملف app.yml بإجراء التغييرات أدناه.
قم بتغيير DISCOURSE_CDN_URL و/أو DISCOURSE_S3_CDN_URL إذا كنت تستخدم أسماء CNAME للنطاق لتوزيع Cloudfront (amazonassigned.cloudfront.net).
DISCOURSE_CDN_URL: https://discourse-cdn.نطاق-كامل.كوم
تكوين تخزين S3 (مميز)
## تكوين تخزين S3
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: us-east-1
DISCOURSE_S3_ACCESS_KEY_ID: مفتاح مخفي
DISCOURSE_S3_SECRET_ACCESS_KEY: مفتاح مخفي
DISCOURSE_S3_CDN_URL: https://s3-cdn.نطاق-كامل.كوم
DISCOURSE_S3_BUCKET: اسم-حاويتك-تحميلات
DISCOURSE_S3_BACKUP_BUCKET: اسم-حاويتك-نسخ-احتياطي
DISCOURSE_BACKUP_LOCATION: s3
تعديلات تكوين إضافية (app.yml)
بغض النظر عن النهج الذي تستخدمه، سواء كان عناوين URL مميزة أو عناوين URL لـ Cloudfront، ستحتاج إلى قسم after_assets_precompile أدناه لضمان بقاء الأمور محدثة أثناء عمليات إعادة البناء اللاحقة.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
-قد يكون لديك إضافات أكثر
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
أعد بناء مثيلك باستخدام ./launcher rebuild app
بعد اكتمال ./launcher rebuild app بنجاح، قم بتشغيل هذه الأوامر rake.
./launcher enter app
rake posts:rebake
rake uploads:migrate_to_s3
rake posts:rebake_uncooked_posts
rake s3:upload_assets
rake s3:expire_missing_assets
إذا اكتملت أوامر rake دون أخطاء، فأنت جاهز للعمل.
في بعض المواقع، سيفشل إعادة البناء الأولي مع خطأ يتعلق بـ s3:upload_assets. إذا حدث ذلك،
تحقق من إعداد “قراءة” في حاوية التحميلات. إذا تم تعيينه بشكل صحيح، فقم بـ
تعليق أو إزالة قسم after_assets_precompile:
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
وشغّل ./launcher rebuild app مرة أخرى. ثم شغّل “rake s3:upload_assets” و “rake s3:expire_missing_assets”.
إذا اكتملت أوامر rake دون أخطاء، أعد إضافة أو إلغاء تعليق قسم after_assets_precompile، أعد البناء مرة أخرى وقم بتشغيل جميع أوامر rake المذكورة أعلاه.
إذا أعطى أي من أوامر rake خطأ أو فشل إعادة البناء مرة أخرى، فهناك خطأ ما في ملف app.yml و/أو تكوينات AWS S3 و/أو سجلات DNS. سعيد بالبحث! ![]()
s3-discourse-policy-your-iam-user.txt (697 بايت)