حلّ المجتمع

إعداد وكيل عكسي لتطبيقات ZimaOS وDocker باستخدام Nginx: تغيير منفذ واجهة الويب، واستخدام DNS محلي، وتجنّب الحلقات اللانهائية

A June 2026 thread where a user running IPFire/Bind9 wanted local hostnames for ZimaOS and Docker apps. A community reply showed the ZimaOS WebUI Port setting under General. The original poster moved the WebUI to port 83, used static-IP Nginx proxy destinations and local DNS entries, rebooted networking equipment, and confirmed the setup worked.

قدّم المصدر تصميمًا عمليًا لوكيل عكسي محلي: انقل لوحة معلومات ZimaOS بعيدًا عن المنفذ 80، واحجز المنفذين 80/443 للوكيل العكسي، وأنشئ سجلات DNS محلية، ووجّه أهداف وكيل Nginx إلى عنوان IP الثابت لشبكة LAN الخاصة بخادم ZimaOS، بالإضافة إلى المنفذ الفعلي لكل تطبيق.

كان قرار التصميم الأساسي هو تجنّب حلقة DNS. فقد استخدمت سجلات Bind9 الخاصة بالمستخدم أسماءً سهلة مثل food.sdak، بينما ظلّ عنوان الوجهة للمصبّ في Nginx هو عنوان IP الثابت لـ ZimaOS، مثل 10.66.66.30:9925، بدلًا من إعادة توجيه الوكيل إلى اسم المضيف عبر نفسه.

إعدادات ZimaOS العامة التي تعرض تغيير منفذ واجهة الويب من القيمة الافتراضية إلى المنفذ 83 لإعداد الوكيل العكسي
أشار صاحب الرد في المصدر إلى الإعدادات ← عام ← منفذ واجهة الويب، لكي يتمكن Nginx من استخدام منفذ HTTP التقليدي.

نقل واجهة ويب ZimaOS بعيدًا عن المنفذ 80

في المصدر، غيّر المستخدم واجهة ويب ZimaOS إلى المنفذ 83. لا يهم المنفذ البديل المحدد؛ اختر منفذًا غير مستخدم ووثّقه.

بعد تغييره، تحقّق أولًا من الوصول المباشر:

http://ZIMA_LAN_IP:83

لا تضف Nginx حتى يعمل عنوان لوحة المعلومات المباشر الجديد.

قد يحتاج المنفذ 443 إلى التخطيط نفسه

أشار الرد في المجتمع إلى أن إعدادات HTTPS في ZimaOS توجد ضمن وضع المطوّر، وقد تتعارض مع وكيل عكسي يريد استخدام المنفذ 443 أيضًا. حدّد الخدمة التي ستتولى المنفذ 443 قبل تفعيل الخدمتين.

إذا كان Nginx ينهي اتصال HTTPS، فيمكن أن تظل الواجهة الخلفية تستخدم HTTP خاصًا داخل شبكة LAN، ما لم يتطلب نموذج الأمان لديك استخدام TLS على كلا المسارين.

استخدم عنوان IP ثابتًا لشبكة LAN كهدف للوكيل العكسي

عيّن المستخدم في المصدر عنوان IP ثابتًا للمضيف الذي يعمل عليه ZimaOS، واستخدم هذا العنوان في إعداد المصبّ في Nginx. يدعم ZimaOS الحالي إعدادات الشبكة عبر DHCP أو يدويًا بعنوان IP ثابت ضمن الإعدادات ← الشبكة.

راجع سير عمل عنوان IP الثابت الحالي في ZimaOS.

أنشئ سجلات DNS محلية للأسماء السهلة

سجلات مضيف DNS المحلية في Bind9 على IPFire، التي توجّه أسماء خدمات مثل food وpool وzima إلى عنوان IP الثابت لـ ZimaOS
يحافظ المصدر على حلّ الأسماء داخل جهاز التوجيه/خادم DNS المحلي، ويوجّه أسماء خدمات متعددة إلى عنوان IP نفسه الخاص بـ ZimaOS.

بالنسبة إلى نطاق DNS منزلي فقط، تجنّب استخدام .local مع DNS أحادي الإرسال العادي متى أمكن، لأن هذا اللاحقة تُستخدم تقليديًا مع mDNS. استخدم نطاقك الداخلي الحقيقي أو مساحة أسماء محلية أخرى تُدار عمدًا.

وجّه Nginx إلى الواجهات الخلفية بصيغة IP:Port

مدير وكيل Nginx يعرض مضيفي وكيل محليين لـ food وpool وzima باستخدام عنوان IP الثابت لـ ZimaOS ومنافذ وجهة مختلفة
يستخدم جدول الوكيل العامل في المصدر عنوان IP نفسه لـ ZimaOS مع منافذ وجهة مختلفة للتطبيقات.

يؤدي ذلك إلى تجنّب حلّ اسم المضيف العام/السهل من داخل الوكيل نفسه، وإرسال حركة المرور بالخطأ مرة أخرى إلى الوكيل.

حافظ على حركة WebSocket/Upgrade للتطبيقات التفاعلية

يستخدم ZimaOS والعديد من التطبيقات المستضافة ذاتيًا اتصالات WebSocket أو HTTP Upgrade طويلة الأمد. قد تبدو الصفحة محمّلة بصريًا، بينما تفشل الأدوات المباشرة أو مربعات حوار التطبيقات إذا لم يمرّر الوكيل العكسي ترويسات الترقية المطلوبة.

استخدم دعم WebSocket المناسب في Nginx أو Nginx Proxy Manager للتطبيقات التي تحتاج إليه.

لا يتطلب DNS المحلي إتاحة عامة عبر الإنترنت

كان الهدف في المصدر هو التسهيل محليًا، وليس نشر وحدة NAS على الإنترنت. أبقِ مستمعي الوكيل وسجلات DNS مقيدة بالشبكات الموثوقة، ما لم تصمّم عمدًا وصولًا خارجيًا باستخدام المصادقة والشهادات وقواعد الجدار الناري ونموذج تهديد مناسب.

أصلحت عمليات إعادة التشغيل حالة ARP/الشبكة في المصدر، لكنها ليست جوهر الإعداد

أعاد المستخدم تشغيل كل من ZimaOS وIPFire بعد تغيير المنافذ، وذكر أن ذلك حرّر حالة ARP/الشبكة القديمة. كان ذلك تنظيفًا خاصًا بالمصدر، وليس متطلبًا عامًا بعد كل تغيير في الوكيل.

الأسئلة الشائعة حول وكيل Nginx العكسي

أين غيّر المصدر منفذ واجهة ويب ZimaOS؟

الإعدادات ← عام.

لماذا استخدم المصدر عنوان IP الثابت كوجهة في Nginx؟

لتجنّب حلقة DNS/الوكيل وجعل هدف الواجهة الخلفية محددًا بشكل حتمي.

هل تحتاج أسماء الوكيل العكسي المحلية إلى إتاحتها على الإنترنت؟

لا. يمكن أن يظل التصميم بالكامل داخل شبكة LAN باستخدام DNS محلي.