প্রশ্ন Nginx প্রক্সি একটি ভিন্ন আইপি ঠিকানার সমতুল্য পোর্টে একটি বড় পোর্ট পরিসীমা


আমি একটি ভিন্ন আইপি ঠিকানার একই পোর্টে একটি সম্পূর্ণ পরিসীমা (9000-9999) প্রক্সি করতে nginx ব্যবহার করতে চাই। Nginx স্বয়ংক্রিয়ভাবে একটি হাজার বন্দর বাঁধন জন্য এটা সম্ভব? আমি nginx কনফিগারেশন 4000 লাইন লেখা ছাড়া এই কাজ করতে পারেন?


6
2018-06-10 17:45


উত্স




উত্তর:


আমি পরিবর্তে কি শেষ পর্যন্ত এখানে:

server {
    server_name "~^port(?P<forwarded_port>9\d{3})\.example\.com$";
    location / { proxy_pass http://127.0.0.1:$forwarded_port; }
}

এই ভাবে, আপনি সহজেই সংযোগ করতে পারেন http://port9034.example.com;


5
2018-01-21 20:05





আপনি অন্তর্নির্মিত সঙ্গে এই কাজ করতে পারেন সার্ভার_পোর্ট পরিবর্তনশীল:

proxy_pass http://backend-host-name:$server_port;

অনুরোধটি যে কোন বন্দরে একই ব্যাক-এন্ড পোর্টে প্রক্সাইড করা হবে তা তৈরি করবে।

সুতরাং আপনি 1000 proxy_pass বিবৃতি প্রয়োজন হবে না। কিন্তু, আপনি একটি সমস্যা হতে পারে শোনা নির্দেশে। এটি পোর্টের একটি পরিসর গ্রহণ করবে না, তাই আপনাকে ফর্মটির 1000 লাইনের প্রয়োজন হবে:

listen 9000;
listen 9001;
listen 9002;

যে তালিকাটি সহজেই স্প্রেডশীটের মাধ্যমে তৈরি করা যেতে পারে। আপনি সম্ভবত এই সংখ্যাগুলির সকেটগুলি পরিচালনা করতে nginx দ্বারা অনুমোদিত ফাইল হ্যান্ডেলগুলির সংখ্যা সামঞ্জস্য করতে হবে। Nginx এটা করতে পারেন, সীমা OS স্তর এ হতে পারে। দেখ এখানে এবং এখানে

আমি বলব, যদিও এটি একটি সমস্যাযুক্ত নকশা বলে মনে হচ্ছে। কেন আপনি 1000 পোর্ট প্রয়োজন? হোস্ট নাম বা ইউআরএল এর কিছু অংশ ব্যবহার করে ভিন্ন ভিন্ন অনুরোধ জানানো হবে না? এটি অনেক বেশি আকারযোগ্য হবে - বেসলাইন হিসাবে 2000 সকেটের প্রয়োজন নেই।


5
2017-10-03 15:44