أحاول تشغيل عدة حاويات عامل ميناء كل تشغيل نجينكس الاستماع على المنفذ 80 ، ولكن مع منافذ المضيف مختلفة تعيين إلى ميناء الحاويات 80.
بالنسبة للجزء الأكبر هذا يعمل ، باستثناء عندما نجينكس لا إعادة توجيه بسبب فقدان شرطة مائلة زائدة.
server { listen 80; root /var/www; index index.html; location /docs {}}
وبالنظر إلى التكوين إنجن إكس أعلاه وحاوية عامل الميناء تشغيله مع منفذ المضيف 8080 تعيينها إلى منفذ الحاويات 80 يمكنني الحصول على المضيف المحلي:8080 / مستندات / عبر حليقة موافق:
> GET /docs/ HTTP/1.1> User-Agent: curl/7.35.0> Host: localhost:8080> Accept: */*>< HTTP/1.1 200 OK* Server nginx/1.9.5 is not blacklisted< Server: nginx/1.9.5< Date: Sat, 28 Nov 2015 17:27:05 GMT< Content-Type: text/html< Content-Length: 6431< Last-Modified: Sat, 28 Nov 2015 17:17:06 GMT< Connection: keep-alive< ETag: "5659e192-191f"< Accept-Ranges: bytes<... html page ...
ولكن إذا طلبت المضيف المحلي: 8080 / مستندات أحصل على إعادة توجيه إلى المضيف المحلي / مستندات/
> GET /docs HTTP/1.1> User-Agent: curl/7.35.0> Host: localhost:8080> Accept: */*>< HTTP/1.1 301 Moved Permanently* Server nginx/1.9.5 is not blacklisted< Server: nginx/1.9.5< Date: Sat, 28 Nov 2015 17:29:40 GMT< Content-Type: text/html< Content-Length: 184< Location: http://localhost/docs/< Connection: keep-alive<... html redirect page ...
كيف يمكنني الحصول على إنجن إكس للحفاظ على المنفذ الأصلي عند القيام إعادة توجيه? لقد حاولت النظر إلى المنفذ المباشر واسم الخادم لكنهم لم يساعدوا.
سيقوم عملاء هتب بوضع المنفذ في رأس المضيف. إذا كنت تستخدم القيمة الأصلية لرأس المضيف عند إجراء إعادة التوجيه ، فيجب أن تعمل كما هو متوقع. اختبرت التعليمات البرمجية التالية ويتطلع إلى أن تفعل بالضبط ما طلبته:
هذا ليس سلوكا متطابقا لأنه يتجنب إعادة التوجيه تماما. إذا كنت تريد إعادة توجيه شرطة مائلة زائدة مثل وحدة الفهرس تعطي ، ثم مطلوب حل أكثر تعقيدا. على سبيل المثال:
أنا لا أريد حقا أي شيء موازنة أمام هذه الحاويات. لقد حصلت على ملف عامل الميناء يؤلف الذي يحدد المنفذ الخارجي على أساس فار إنف ، ومعظم الوقت أنا فقط" عامل الميناء يؤلف حتى د " هذا الملف مرة واحدة. ولكن لأسباب الاختبار والسماح لي للعمل على أشياء أخرى أريد أن تكون قادرة على القيام “ميناء=8080 عامل الميناء-يؤلف-ف اختبار يصل د” لتدور مجموعة جديدة كاملة من الحاويات (بسبب اسم المشروع الجديد) التي يتم تعيينها إلى منفذ مضيف مختلف.