Discourse محمل بشكل زائد: حركة مرور حقيقية أم DDOS؟ استخدام CPU بنسبة 100% رغم حركة مرور جيدة وخادم بمواصفات عالية

من المرجح أن عنوان IP 172.17.0.1 هو عنوان IP خاص بـ Docker. أفترض أن السجلات التي نشرتها تعود لخدمة nginx داخل حاوية Discourse. وتكمن تخميني في أن nginx على المضيف يرسل الطلب إلى nginx داخل حاوية Discourse، فيرى nginx في Discourse عنوان IP الخاص بـ nginx على المضيف.

يجب أن تتمكن من حل المشكلة إما عن طريق تعيين عنوان IP الحقيقي في Discourse ليكون قيمة رأس (header) يرسله nginx على المضيف، أو عن طريق استخدام socket لربط خدمات nginx.

على سبيل المثال، في nginx على المضيف، استخدم الأمر proxy_set_header X-Real-IP $remote_addr;، وفي nginx داخل حاوية Discourse، استخدم عنوان IP الحقيقي بناءً على هذا الرأس، عبر set_real_ip_from 0.0.0.0/0; (بافتراض أن nginx في Discourse لا يُستدعى من الخارج) و real_ip_header X-Real-IP;. قد تحتاج إلى استخدام قالب أو تشغيل أمر sed لإدراج هذه الإعدادات في ملف تكوين nginx في Discourse.

خيار آخر هو استخدام sockets، وإدراج ملف web.socketed.template.yml وفقًا للدليل التالي:

ولكن توصيتي، إذا كان ذلك متاحًا، هي استخدام Discourse على خادم خاص به، دون الحاجة إلى استخدام nginx كوسيط عكسي أمامه، مما سيجعل الإعداد أكثر وضوحًا وأسهل بكثير.