নোডজেএস এবং অ্যাপাচি 80 বিভিন্ন আইপি অ্যাড্রেস ব্যবহার করে পোর্ট 80- এ অ্যাপাচি পোর্ট 80 সাফের দরকার যদিও এটি একটি ভিন্ন আইপি-র পোর্ট 80 ব্যবহারের জন্য কনফিগার করা হয়েছে


1

আমি 80 এর পোর্টে একটি নোড.জেএস অ্যাপ ব্যবহার করছি 127.0.0.2:80

server.listen(80, '127.0.0.2', function() {...

এবং আমি অন্য আইপি ঠিকানার 80 নম্বর পোর্টে অ্যাপাচি ব্যবহার করতে চাই , বলুন 127.0.0.3:80, তাই এটি আমার আমার httpd.conf এ রয়েছে

Listen 127.0.0.3:80
ServerName 127.0.0.3:80

তবে এটি আমাকে ত্রুটি দেয়

অ্যাপাচি পোর্ট (80) ইতিমধ্যে অন্য অ্যাপ্লিকেশন দ্বারা ব্যবহৃত হয়েছে!

কোন আইপি-র 80 পোর্ট নিজেই এটি শোনার জন্য প্রোগ্রাম করা হয়েছে তা নির্বিশেষে কেন আপাচি কেন এলোমেলো বন্দর 80 সম্পর্কে যত্নশীল? যতদূর এটি 80 বন্দরটি সম্পর্কিত হওয়া উচিত 127.0.0.3:80এখনও নিখরচায়।

এমনকি আমি আরও আইপি সিরিজ (192.xxx, 122.xxx) দিয়ে চেষ্টা করেছি কিন্তু আপাচে 80 পোর্টটি মুক্ত, পুরো স্টপ চাইছে।

অদ্ভুত বিষয়টি হ'ল, যদি আমি প্রথমে অ্যাপাচি শুরু করি তবে এটি কোনও সমস্যা ছাড়াই লঞ্চ হয়, এবং তারপরে আমি এমনকি উপরের একই কনফিগারেশন সহ নোড.জেগুলিও শুরু করতে পারি এবং তারা উভয়ই ঠিকঠাক কাজ করে। তবে কোনও কারণে মূল্যবান অ্যাপাচি যে কোনও আইপি ঠিকানার পোর্ট 80 এ শুনার আগে কেউ এর উচ্চতা প্রথমে শুরু করার সুযোগ পাওয়ার আগে পছন্দ করে না।

আমি কী এমন ভুল বোঝাবুঝি করছি যে যদি কোনও অ্যাপ্লিকেশন শুনছে 127.0.0.2:80তবে কেবল সেই আইপি-র 80 পোর্টটি ব্যস্ত থাকতে হবে, অন্য আইপি-র পোর্ট 80 এখনও নিখরচায় থাকা উচিত 127.0.0.3:80? নাকি এটি আপাচি যে খারাপ ব্যবহার করছে?

উত্তর:


3

দয়া করে মনে রাখবেন এই উত্তরের শেষে আমার কাছে একটি প্রস্তাবিত প্রাথমিক সমাধান রয়েছে।

এইচটিটিপি ডিফল্টরূপে টিসিপি ব্যবহার করে এবং ইউডিপি যখন একক পোর্টের সাথে একাধিক প্রোগ্রামকে বাধ্যতামূলকভাবে সমর্থন করে, তখন টিসিপি সাধারণত তা করে না। সুতরাং 80 বন্দরটি কোনও নির্দিষ্ট আইপি-র জন্য নিখরচায় প্রদর্শিত হবে না কারণ স্থানীয় মেশিনে সেই আইপি দিয়ে পোর্ট 80 (টিসিপি) ব্যবহার করে সম্ভবত একটি প্রোগ্রাম হতে পারে।

পৃথক লুপব্যাক আইপি সম্পর্কিত, মনে রাখবেন যে পুরো 127.x.x.x নেটব্লক স্থানীয় লুপব্যাকের জন্য সংরক্ষিত। সুতরাং 127.0.0.1একই কম্পিউটার (যেমন লোকালহোস্ট) হিসাবে 127.0.0.2(বা 127.0.0.3বা 127.127.127.127, ইত্যাদি) বোঝায় । এবং যেহেতু আপনি 127.x.x.x"আসল" আইপি (যেমন পৃথক আসল বা ভার্চুয়াল এনআইসি সনাক্ত করে) এর চেয়ে লুপব্যাক ঠিকানা ব্যবহার করছেন, তাই আপনি যখন দ্বিতীয়টি শুরু করেন তখন প্রদত্ত আইপি সহ পোর্ট ৮০ ইতিমধ্যে অন্য কোনও অ্যাপ্লিকেশন ব্যবহার করতে পারে।

এবং হ্যাঁ, আপনি যখন স্থানীয় লুপব্যাক আইপি (যেমন 127.0.0.1এবং 127.0.0.2বিভিন্ন পৃষ্ঠাগুলি ফিরিয়ে আনতে পারেন) দিয়ে আপাচে ভার্চুয়াল হোস্টিং করতে পারেন, অ্যাপাচি প্রক্রিয়াটি এখনও ডিফল্টরূপে বিশ্বব্যাপী পোর্ট 80 (টিসিপি) সাথে আবদ্ধ থাকে।

অদ্ভুত বিষয়টি হ'ল, যদি আমি প্রথমে অ্যাপাচি শুরু করি তবে এটি কোনও সমস্যা ছাড়াই লঞ্চ হয়, এবং তারপরে আমি এমনকি উপরের একই কনফিগারেশন সহ নোড.জেগুলিও শুরু করতে পারি এবং তারা উভয়ই ঠিকঠাক কাজ করে।

আমি নিশ্চিত "এখানে কাজ" জরিমানা "কোনটি উল্লেখ করছে, তবে অ্যাপাচি শুরু করার পরে 80-র পোর্টে Node.js HTTP- সার্ভার চালু করার চেষ্টা করার পরে ( এনপিএল HTTP-সার্ভার-জি ইনস্টল করুন ), তবুও আমি একটি ত্রুটি পেয়েছি if 127.0.0.4নির্দিষ্ট করা যেমন একটি ঠিকানা ।

node.js এর চিত্রটি সার্ভার শুরু করতে ব্যর্থ

আমার কনফিগারেশন ফাইলে, আমাকে নিশ্চিত করতে হয়েছিল যে আপাচি বিশেষত শুনছেন 127.0.0.1:80এবং HT-সার্ভার শুনছে 127.0.0.4:80। যদি আমি সবেমাত্র Listen 80আপাচে থাকি তবে http-সার্ভার ব্যর্থ হয়েছিল। অ্যাপাচি শুরু করতে অস্বীকার সম্পূর্ণ স্বাভাবিক, উভয়ই অ্যাপাচি এবং প্রক্রিয়া অনুযায়ী কেবলমাত্র একটি টিসিপি আইপি / পোর্ট সংমিশ্রণের নীতি অনুসারে।

সমাধান

এই সমস্যার সহজ সমাধান হ'ল একই মেশিনে একাধিক এনআইসি চালানো (যার নিজস্ব অনন্য আইপি রয়েছে প্রতিটি)। এইভাবে, প্রতিটি এনআইসির নিজস্ব পোর্ট 80 বাইন্ডিং থাকতে পারে (আইপি + পোর্ট = সম্পূর্ণ গন্তব্য ঠিকানা)। আর একটি সম্ভাবনা হ'ল এনআইসির জন্য "ভার্চুয়াল ইন্টারফেস" চেষ্টা করা (যাতে আপনি একই এনআইসিকে দুটি "ভার্চুয়াল" আইপি দিতে পারেন)।


উল্লেখ

স্ট্যাক ওভারফ্লো - দুটি অ্যাপ্লিকেশন একই বন্দরে শুনতে পাবে?

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.