قدّم المصدر تصميمًا عمليًا لوكيل عكسي محلي: انقل لوحة معلومات ZimaOS بعيدًا عن المنفذ 80، واحجز المنفذين 80/443 للوكيل العكسي، وأنشئ سجلات DNS محلية، ووجّه أهداف وكيل Nginx إلى عنوان IP الثابت لشبكة LAN الخاصة بخادم ZimaOS، بالإضافة إلى المنفذ الفعلي لكل تطبيق.
كان قرار التصميم الأساسي هو تجنّب حلقة DNS. فقد استخدمت سجلات Bind9 الخاصة بالمستخدم أسماءً سهلة مثل food.sdak، بينما ظلّ عنوان الوجهة للمصبّ في Nginx هو عنوان IP الثابت لـ ZimaOS، مثل 10.66.66.30:9925، بدلًا من إعادة توجيه الوكيل إلى اسم المضيف عبر نفسه.
نقل واجهة ويب 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 منزلي فقط، تجنّب استخدام .local مع DNS أحادي الإرسال العادي متى أمكن، لأن هذا اللاحقة تُستخدم تقليديًا مع mDNS. استخدم نطاقك الداخلي الحقيقي أو مساحة أسماء محلية أخرى تُدار عمدًا.
وجّه Nginx إلى الواجهات الخلفية بصيغة IP:Port
يؤدي ذلك إلى تجنّب حلّ اسم المضيف العام/السهل من داخل الوكيل نفسه، وإرسال حركة المرور بالخطأ مرة أخرى إلى الوكيل.
حافظ على حركة 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 محلي.
