এই নিবন্ধে আমি cPanel ব্যবহার করে NamecheapâÃÂÃÂs শেয়ার করা হোস্টিং সার্ভারে একটি Node.js অ্যাপ হোস্টিং কভার করব। আমি এই নিবন্ধে আপনার ওয়েব অ্যাপের জন্য ডাটাবেস সার্ভার বা প্রতিক্রিয়া ফ্রন্ট এন্ড সেট আপ করার বিষয়ে আলোচনা করব না। পরিবর্তে আমি একটি শেয়ার্ড হোস্টিং পরিবেশে একটি নোড অ্যাপ চালানোর ক্ষেত্রে আপনি যে চ্যালেঞ্জগুলির মুখোমুখি হতে পারেন তার উপর ফোকাস করতে চাই। == দেরি করবেন না, আজই হোস্ট করুন! == আপনি আপনার ওয়েব অ্যাপ বিকাশের পথে অনেক দূরে যাওয়ার আগে একটি স্থিতিশীল সংস্করণ অনলাইনে রাখা একটি ভাল ধারণা। এটি আপনার উত্পাদন পরিবেশে বা একটি স্টেজিং পরিবেশে হতে পারে যা আপনার উত্পাদন পরিবেশের মতো। বেশিরভাগ লোকেরা তাদের অ্যাপটি অনলাইনে হোস্ট করার আগে প্রায় সম্পূর্ণ না হওয়া পর্যন্ত অপেক্ষা করবে এবং আমার প্রথম প্রতিক্রিয়া এবং নোড ওয়েব অ্যাপ তৈরি করার সময় আমি এটিই করেছি। যাইহোক, সেই সময়ে আমার নোড এপিআই সার্ভার চালানোর ক্ষেত্রে অনেক চ্যালেঞ্জ ছিল এবং আমাকে আমার প্রতিক্রিয়া অ্যাপে অনেক পরিবর্তন করতে হয়েছিল। এই কারণেই আমি আগে থেকেই অনলাইনে একটি সংস্করণ রাখার পরামর্শ দিই যাতে আপনি খুব বেশি কোড লেখার আগে সামঞ্জস্য করতে পারেন৷ == একটি শেয়ার্ড হোস্টিং পরিষেবা ব্যবহার করা == NamecheapâÃÂÃÂs শেয়ার করা হোস্টিং সার্ভারগুলি Apache সার্ভার পরিচালনা করতে কন্ট্রোল প্যানেল ইন্টারফেস হিসেবে cPanel ব্যবহার করে। এই নির্দেশনাগুলি যে কাউকে CPanel-এর সাথে শেয়ার করা হোস্টিং পরিষেবা যেমন A2 Hosting এবং GoDaddy ব্যবহার করে সাহায্য করবে। আমার কাছে একটি SSL শংসাপত্রের সাথে আমার Namecheap সার্ভার সেট আপ আছে এবং ডিফল্টরূপে cPanel সমস্ত HTTP ট্র্যাফিক HTTPS-এ পুনঃনির্দেশ করে। তাই আমার সার্ভারে সমস্ত ট্র্যাফিক নিরাপদ। আপনি একটি VPS (ভার্চুয়াল প্রাইভেট সার্ভার) হোস্টিং পরিষেবা যেমন DigitalOcean-এ একটি নোড অ্যাপ কীভাবে হোস্ট করবেন সে সম্পর্কে নির্দেশনা দেওয়ার জন্য অনেক গাইড পাবেন। আপনি যদি স্ক্র্যাচ থেকে শুরু করেন তাহলে এই ধরনের পরিষেবা ব্যবহার করে হোস্টিং আপনাকে আরও নিয়ন্ত্রণ দেবে৷ তবে এটি সাধারণত শেয়ার্ড হোস্টিংয়ের চেয়ে বেশি ব্যয়বহুল। এবং আমার ক্ষেত্রে আমি ইতিমধ্যে একটি নেমচিপ শেয়ার্ড হোস্টিং পরিষেবার জন্য অর্থ প্রদান করেছি। cPanel এবং শেয়ার্ড হোস্টিং ব্যবহারের কিছু সুবিধা: - একটি সাধারণ ওয়েব ম্যানেজমেন্ট কনসোল দিয়ে পরিচালিত - কনফিগার করা সহজ - সস্তা, বিশেষ করে যদি আপনি ইতিমধ্যেই একটি সাইট / ডোমেন হোস্ট করছেন - আপনি যদি বিভিন্ন প্রযুক্তি অন্বেষণ করেন তবে PHP, ইত্যাদির মতো অন্যান্য প্রযুক্তি ব্যবহার করে সহজেই গতিশীল ওয়েবসাইট সেট আপ করতে পারেন কিছু অসুবিধা: - অন্তর্নিহিত অপারেটিং সিস্টেমে আপনার অ্যাক্সেস না থাকায় কম নিয়ন্ত্রণ - মাপযোগ্য নয় == সব কোথায় যায়? == প্রথমে আপনাকে আপনার নোড অ্যাপ্লিকেশনগুলির জন্য সমস্ত উত্স ফাইলের জন্য একটি ফোল্ডার তৈরি করতে হবে। I এখন এই সাবফোল্ডারে আপনার সমস্ত সোর্স ফাইল আপলোড করুন। আপনি package.json ফাইলটিও অন্তর্ভুক্ত করেছেন তা নিশ্চিত করুন। আপনি âÃÂÃÂnode_modulesâÃÂàফোল্ডারটি আপলোড করবেন না কারণ এটি প্যাকেজ ম্যানেজার দিয়ে তৈরি করা হবে পরে মনে রাখবেন আমরা আমাদের ওয়েব অ্যাপ আর্কিটেকচার উদাহরণে নোড API সার্ভার হোস্ট করছি। আমরা নোড ব্যবহার করে প্রতিক্রিয়া অ্যাপটি হোস্ট করব না (পরবর্তী নিবন্ধে এই বিষয়ে আরও)। httpsdavenewman.tech/wp-content/uploads/2020/06/Diagram-5_1.jpg ফোল্ডার লেআউট /home/username/nodejs/mynodeapi ফোল্ডারের অধীনে নোড সোর্স ফাইলগুলি দেখায় এবং সেখানে একটি .htaccess ফাইলটি /home/username/public_html/myapi ফোল্ডারে == সমস্যা হল নোড অ্যাপ পোর্টগুলি অ্যাক্সেস করতে পারে না == আমার নোড এপিআই অ্যাপটি চালানোর মধ্যে সবচেয়ে বড় চ্যালেঞ্জ ছিল। সমস্যাটি ছিল NamecheapâÃÂÃÂ-এর সমর্থন ডকুমেন্টেশনে দেওয়া নমুনা কোডটি কাজ করেনি! এটি পোর্ট 80 এ শোনার জন্য একটি https সার্ভার এবং 443 পোর্টে একটি http **s** সার্ভার তৈরি করার চেষ্টা করে৷ যাইহোক, আমি সর্বদা একটি EACCESS ত্রুটি পেয়েছি যে আমার কাছে অনুমতি নেই৷ ঐ পোর্ট ব্যবহার করতে. == সমাধান âÃÂàনোডের পোর্ট অ্যাক্সেস করার প্রয়োজন নেই! == অবশেষে আমি অন্য হোস্টিং কন্ট্রোল প্যানেল প্লেস্ক সম্পর্কে একটি থ্রেডে ব্যবহারকারী SibProgrammer এর একটি মন্তব্য পড়ে সমাধানটি খুঁজে পেয়েছি। cPanel নোড অ্যাপ হোস্ট করতে ফিউশন প্যাসেঞ্জার অ্যাপ্লিকেশন সার্ভার ব্যবহার করে, যেমন Plesk করে। সংক্ষেপে: আপনি যখন আপনার ব্রাউজার থেকে একটি অনুরোধ পাঠান তখন এটি Apache সার্ভারে, তারপর Phusion Passenger-এ এবং তারপর আপনার নোড অ্যাপে যায়। আপনার নোড অ্যাপের পোর্টের মালিকানার প্রয়োজন নেই কারণ এটি অ্যাপাচি এবং ফিউশন প্যাসেঞ্জার অ্যাপ্লিকেশন সার্ভার দ্বারা আরও আপস্ট্রিমে পরিচালনা করা হয়। এটি আপনার www.js (বা app.js) ফাইলে https সার্ভার তৈরি করার জন্য কোডটিকে সরল করে: * www.js * নেমচিপের জন্য http সার্ভার তৈরির পরীক্ষা করা হচ্ছে। * ডেভ */ const http = প্রয়োজন('http http.createServer(function(request, response) { response.writeHead(200, {'Content-Type': 'text/html response.endh1>Hello Worldh1 listen(process.env) .PORT); console.log('অ্যাপ চলছে কয়েকটি বিষয় লক্ষ করুন: - process.env.PORT-এ শুনুন (ম্যানুয়ালি 80 বা 443 সেট করার পরিবর্তে)। পরীক্ষা করার সময় আমি লক্ষ্য করেছি যে process.env.PORT অনির্ধারিত! কিন্তু মজার ব্যাপার হল এই ক্ষেত্রে এটা কোন ব্যাপারই না। - আপনার SSL সেট আপ থাকলেও একটি HTTP সার্ভার ব্যবহার করুন৷ cPanel সমস্ত HTTP ট্র্যাফিক HTTPS-এ পুনঃনির্দেশিত করার জন্য Apache কনফিগার করেছে এবং ফলস্বরূপ HTTPS-এর সমস্ত অনুরোধে সাড়া দিতে। একটি https সার্ভার সেট আপ করতে এবং আপনার SSL সার্টিফিকেট পড়তে আপনাকে ম্যানুয়ালি আপনার নোড অ্যাপ কনফিগার করার প্রয়োজন নেই৷ == নোড API সার্ভারের জন্য চূড়ান্ত পদক্ষেপ == এখন আপনার নোড অ্যাপ সেট আপ করার জন্য নির্দেশাবলী অনুসরণ করার অপেক্ষাকৃত সহজ প্রক্রিয়া হওয়া উচিত। httpsdavenewman.tech/wp-content/uploads/2020/06/Diagram-5_2.jpg cPanelâÃÂÃÂs Node.js কনফিগারেশন পৃষ্ঠার স্ক্রিনশট - Node.js এবং অ্যাপ্লিকেশন মোডের উপযুক্ত সংস্করণ চয়ন করুন (উৎপাদন প্রস্তাবিত)। - âÃÂÃÂApplication rootâÃÂàসেই ফোল্ডারটি হবে যেখানে আপনি আপনার সোর্স ফাইলগুলি আগে আপলোড করেছেন (âÃÂà উপরের উদাহরণে nodejs/mynodeapiâÃÂÃÂ)। - âÃÂÃÂApplication URLâÃÂàআপনার API (âÃÂÃÂmyapiÃ) অ্যাক্সেস করতে ব্যবহৃত URL হবে উদাহরণে ¢ÃÂÃÂ)। এই বাক্সে আপনি যে নামটি দেবেন তা আপনার /home/username/public_html ফোল্ডারে একটি সাবফোল্ডার তৈরি করতে ব্যবহার করা হবে। এটি âÃÂÃÂApplication rootâÃÂàফোল্ডারের মতো একই নাম হতে হবে না (কিন্তু প্রায়ই হবে)। - আপনি কীভাবে আপনার নোড অ্যাপ তৈরি করেছেন তার উপর নির্ভর করে âÃÂÃÂApplication startup fileâÃÂàহবে www.js বা app.js। - আপনি কিভাবে যাত্রী লগ ফাইল কনফিগার করতে চান তা আপনার উপর নির্ভর করে। - একবার আপনি অ্যাপটি তৈরি করে নিলে আপনি NPM ইনস্টল চালানোর বোতামটি দেখতে পাবেন। ¢ÃÂàএটি চালান এবং এটি আপনার অ্যাপের প্রয়োজনীয় সমস্ত নির্ভরশীল মডিউল সহ âÃÂÃÂnode_modulesâÃÂàফোল্ডার তৈরি করবে। একবার আপনি আপনার নোড অ্যাপ সেট আপ করে এটি চালু করলে, এটি আপনার /home/public_html ফোল্ডারে সাবফোল্ডার তৈরি করবে। আপনাকে এখন সেই ফোল্ডারে যেতে হবে এবং .htaccess ফাইলটি সম্পাদনা করতে হবে এবং নিম্নলিখিত লাইনে যোগ করতে হবে: RewriteEngine বন্ধ এটি Apache সার্ভারকে আপনার API সার্ভারে অক্ষত থাকা যেকোনও অনুরোধ পুনর্লিখন (বা পুনঃনির্দেশিত) থেকে বাধা দেয়। এবং এটাই! এখন আপনার নোড API অ্যাপটি চালু হওয়া উচিত এবং আপনার API কলগুলিতে প্রতিক্রিয়া জানাতে হবে। == তাহলে পরবর্তী কি? == এখন যেহেতু আমরা নোড এপিআই সার্ভার সেট আপ করেছি আমরা আমাদের ডেভেলপমেন্ট এনভায়রনমেন্টে আমাদের রিঅ্যাক্ট ফ্রন্ট এন্ড পরিবর্তন করে এই API সার্ভারের দিকে নির্দেশ করতে পারি। অথবা আমরা আমাদের API কলগুলি পরীক্ষা করতে পোস্টম্যান ব্যবহার করতে পারি। পরবর্তী নিবন্ধে আমরা নেমচিপ এবং cPanel-এ React অ্যাপ হোস্ট করার দিকে নজর দেব।