كيفية تعديل 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
- قم بتسجيل الدخول إلى خادم الويب الخاص بك عبر SSH.
- اتصل مباشرة بالمقبس عبر
curl. - قم بتصحيح مخرجات
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