خدمة Discourse من مجلد فرعي (بادئة مسار) بدلاً من النطاق الفرعي

كيفية تعديل nginx/discourse.conf

أفترض أن أي تغييرات في discourse.conf داخل الحاوية يتم التراجع عنها عن طريق إعادة البناء على أي حال.

للاحتفاظ بالتغييرات، يجب عليك بطريقة ما إضافتها إلى تكوين الحاوية الخاص بك - على سبيل المثال، web_only.yml:

# [...]
## تذكر، هذه صيغة YAML - يمكنك فقط الحصول على كتلة واحدة باسم
run:
  - exec: echo "Beginning of custom commands"
# [...]
  - replace:
      filename: /etc/nginx/conf.d/discourse.conf
      from: $proxy_add_x_forwarded_for
      to: $http_x_real_ip
      global: true
# [...]

كيفية تصحيح تثبيت Discourse في مجلد فرعي

في تثبيت Discourse في مجلد فرعي، يتم استدعاء Discourse كالتالي:
example.org/forum[وكيل خارجي لـ example.org]/path-to-discourse/discourse/shared/web-only/nginx.http.sock[Nginx في حاوية Discourse]

لذلك، إذا كان هناك خطأ، يجب علينا أولاً تحديد مكانه:

  • الوكيل الخارجي
  • Nginx في حاوية Discourse
  • Discourse نفسه

الوكيل الخارجي

  • قم باستدعائه في متصفح وتحقق من النتيجة.
  • تحقق من سجلات الأخطاء للوكيل الخارجي.

Nginx في حاوية Discourse

  1. قم بتسجيل الدخول إلى خادم الويب الخاص بك عبر SSH.
  2. اتصل مباشرة بالمقبس عبر curl.
  3. قم بتصحيح مخرجات curl وسجلات Nginx في Discourse

هام: استخدم عنوان URL http - وليس https.

curl -I --unix-socket /path-to-discourse/discourse/shared/web-only/nginx.http.sock http://www.example.org/forum/

إذا نجح هذا، جرب استدعاءً حقيقيًا مثل:

curl --unix-socket /path-to-discourse/discourse/shared/web-only/nginx.http.sock \
-H "user-agent: Chrome/88.0.4324.182" \
-H "Accept-Encoding: gzip" \
http://www.example.org/forum/t/test-thread/12345 --output test-encoded.html.gz
3 إعجابات