সেম সার্ভারে অ্যাপাচি এবং নোড.জেএস


352

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

  1. তাকে নোড ব্যবহার করতে রাজি করান (সে বিষয়ে তিনি সামান্য ভিত্তি দিচ্ছেন)

  2. নোডে বা কীভাবে ফাইলগুলি আপলোড, ডাউনলোড, নাম পরিবর্তন, সংরক্ষণ ইত্যাদি করা যায় তা চিত্রিত করুন Figure

  3. আমার অবশ্যই একই সার্ভারে অ্যাপাচি এবং নোড ইনস্টল করতে হবে।

সবচেয়ে অনুকূল পরিস্থিতি কোনটি, এবং আমি কীভাবে এটি বাস্তবায়ন করব?

উত্তর:


704

দুর্দান্ত প্রশ্ন!

পিএইচপিতে প্রচুর ওয়েবসাইট এবং নিখরচায় ওয়েব অ্যাপ্লিকেশন প্রয়োগ করা আছে যা অ্যাপাচিতে চালিত হয়, প্রচুর লোক এটি ব্যবহার করে যাতে আপনি খুব সহজ কিছু ম্যাসেজ করতে পারেন এবং তদ্ব্যতীত এটি স্ট্যাটিক বিষয়বস্তু পরিবেশন করার কোনও অ-বৌদ্ধিক উপায়। নোড দ্রুত, শক্তিশালী, মার্জিত, এবং ভি 8 এর কাঁচা শক্তি সহ একটি সেক্সি সরঞ্জাম এবং কোনও অন্তর্নির্মিত নির্ভরতা ছাড়াই একটি সমতল স্ট্যাক।

আমি এপাচে স্বাচ্ছন্দ্য / নমনীয়তা এবং নোড.জেএস-এর ঘৃণ্য এবং কমনীয়তা চাই, কেন আমি উভয় রাখতে পারি না ?

ভাগ্যক্রমে অ্যাপাচে প্রক্সিপাস নির্দেশের httpd.confসাথে আপনার নোড.জেএস অ্যাপ্লিকেশনে নির্দিষ্ট ইউআরএল সমস্ত অনুরোধগুলি পাইপ করা খুব কঠিন নয়।

ProxyPass /node http://localhost:8000

এছাড়াও, নিশ্চিত হয়ে নিন যে নীচের লাইনগুলিতে মন্তব্য করা হয়নি যাতে আপনি সঠিকভাবে প্রক্সি এবং সাব-মডুলিটি HTTP অনুরোধগুলি পুনরায় তৈরি করতে পান:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

তারপরে 8000 পোর্টে আপনার নোড অ্যাপটি চালান!

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Apache!\n');
}).listen(8000, '127.0.0.1');

তারপরে আপনি /node/আপনার ইউআরএলটিতে পাথ ব্যবহার করে সমস্ত নোড.জেএস যুক্তি অ্যাক্সেস করতে পারবেন , আপনার বিদ্যমান পিএইচপি পৃষ্ঠাগুলি হোস্ট করার জন্য বাকী ওয়েবসাইটটি অ্যাপাচে রেখে যেতে পারে:

এখানে চিত্র বর্ণনা লিখুন

আপনার হোস্টিং সংস্থাকে এই কনফিগারেশনের সাহায্যে চালিত করার জন্য কেবলমাত্র বাকি জিনিসটি !!!


6
এটি একটি দুর্দান্ত উত্তর ছিল, আমি এই কাজটি করার জন্য ব্যবহৃত প্রক্সি পাসের বিষয়ে আরও কিছু তথ্যের সাথে একটি লিঙ্ক যুক্ত করতে চেয়েছিলাম। মন্তব্যগুলিও পরীক্ষা করে দেখুন। boriskuzmanovic.wordpress.com/2006/10/20/…
অ্যালেক্স মুরো

11
আমি ভার্চুয়াল হোস্ট কনটেইনারটির ভিতরে "প্রক্সিপাস / 127.0.0.1:8000 " রাখার পরীক্ষা করেছি এবং একটি সফল নোড ইভেন্টে একটি সম্পূর্ণ ডোমেন গ্রুপকে সাফল্যের সাথে পুনর্নির্দেশ করতে সক্ষম হয়েছি। অ্যাপাচি এর উপরে সরাসরি অ্যাক্সেসের নোডের অ্যাক্সেসের গতির তুলনা করতে আমি "টাইম উইজেট ..." দিয়েও পরীক্ষা করেছি। 30 জোড়া পরীক্ষায়, গড় পার্থক্য ছিল প্রায় 0.56 মিমি। সর্বনিম্ন লোড সময়টি সরাসরি এবং অ্যাপাচি উভয়ের জন্যই 120 মিমি ছিল। সর্বাধিক লোড সময়টি ছিল সরাসরি জন্য 154 মিমি এবং আপাচে মাধ্যমে 164। একটি উল্লেখযোগ্য পার্থক্য নয়। আমার কাছে যদি দুটি আইপি বিলাসিতা থাকে তবে আমি অ্যাপাচি দিয়ে যাব না, তবে আপাতত আমি প্রক্সিপাসের সাথে আটকে থাকব
kaan_a

5
এই প্রক্সিটি অ্যাপাচি থেকে নোডের কাছে কী অনুরোধ করে না, যখন এটি নোডের অবরুদ্ধকরণ প্রকৃতির সুবিধাগুলি কেড়ে নেয়?
ট্রেস করুন

2
হাই @ বাসজ, আমি নিজে ওয়েবসকেটগুলির জন্য সমর্থন ইনস্টল করার অভিজ্ঞতা পাই না। এটি বলার পরে, অ্যাপাচি ২.৪..6 ব্যবহার করে ওয়েবসকেট ট্র্যাফিক প্রক্সিংয়ের পক্ষে সমর্থন রয়েছে বলে মনে হয় mod_proxy_wstunnel। আমি দেখতে পেয়েছি যে আপনি এখন আপনার উত্তরটি পেয়ে গেছেন,
স্টিভেন ডি সালাস

4
ডেবিয়ান ভিত্তিক বিতরণগুলিতে আমি এটি কোথায় যুক্ত করব? এখানে কোনও httpd.conf ফাইল নেই।
সান্টি

63

এই প্রশ্নটি সার্ভার ফল্টের সাথে সম্পর্কিত তবে FWIW আমি বলব নোড.জেসের সামনে অ্যাপাচি চালানো বেশিরভাগ ক্ষেত্রেই ভাল পদ্ধতির নয়।

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

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

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


13
এই উত্তরের আরও বেশি পরিমাণে উচিৎ হওয়া উচিত। এটি অ্যাপাচি একের চেয়ে এনগিনেক্স প্রক্সি ব্যবহার করার জন্য অবশ্যই আরও অনেক ভাল পদ্ধতির।
পুনরায় সমৃদ্ধ করুন

ইয়া কিন্তু এটি সম্পদ নিবিড়
ওরাকল

1
আপনার বিবৃতিটি ব্যাক আপ করার জন্য আপনার কাছে কিছু নম্বর আছে যে এনজিএনএক্সটি এইচডিডি এর চেয়ে কম সংস্থান করবে?
রেডশিফ্ট

যদিও আমি এটি বেশ নাটকীয় না। যদিও আমি লিঙ্কগুলি ভঙ্গুর হওয়ায় জবাবগুলিতে লিঙ্ক না দেওয়ার চেষ্টা করছি তবে গুগলের মাধ্যমে আপনি কিছু আলোচনা এবং উদাহরণ খুঁজে পেতে পারেন - যেমন help.dreamhost.com/hc/en-us/articles/…… অ্যাপাচি দুর্দান্ত সফ্টওয়্যার তবে এটি সাধারণত একটি নয় এই মত একটি প্রসঙ্গে মহান পদ্ধতির।
আয়েন কলিন্স

এই উত্তরটি ভাল শোনাচ্ছে, তবে কীভাবে নোড.জেএসএস-এ এইচএসএসের মাধ্যমে অ্যাক্সেস করবেন যেমন এটি ইতিমধ্যে অ্যাপাচি গ্রহণ করেছে?
পিয়েরে

34


নির্দেশনা চালানোর node serverবরাবর apache2(v2.4.xx) server:

তৈরি আপনার Node.js আবেদন একটি নির্দিষ্ট URL এ সমস্ত অনুরোধ নল জন্য CUSTOM.confভিতরে ফাইল /etc/apache2/conf-availableডিরেক্টরি, এবং যোগ নির্মিত ফাইলে লাইন নিম্নলিখিত:

ProxyPass /node http://localhost:8000/

8000 এর জন্য পছন্দসই পোর্ট নম্বরে পরিবর্তন করুন node server
নিম্নলিখিত কমান্ড সহ কাস্টম কনফিগারেশন সক্ষম করুন:

$> sudo a2enconf CUSTOM

CUSTOM হ'ল এক্সটেনশন ছাড়াই আপনার নতুন নির্মিত ফাইল নাম, তারপরে proxy_httpকমান্ডটি সক্ষম করুন:

$> sudo a2enmod proxy_http

এটি উভয় proxyএবং proxy_httpমডিউল সক্ষম করা উচিত । আপনি যাচাই করতে পারেন যে মডিউলটি সক্ষম হয়েছে কিনা তা সহ:

$> sudo a2query -m MODULE_NAME

কনফিগারেশন এবং মডিউলগুলি সক্ষম হওয়ার পরে, আপনাকে অ্যাপাচি সার্ভারটি পুনরায় চালু করতে হবে:

$> sudo service apache2 restart

এখন আপনি নোড সার্ভার চালাতে পারেন। সমস্ত অনুরোধ URL/nodeনোড সার্ভার দ্বারা পরিচালিত হবে।


একটি যাদুমন্ত্র মত কাজ করে! :)
কিস কোইন

15

কোনও সার্ভারে নোড এবং অ্যাপাচি চালানো তুচ্ছ কারণ তারা দ্বন্দ্ব করে না। নোডজেএস জাভাস্ক্রিপ্ট সার্ভার পাশ চালানোর একমাত্র উপায়। আসল দ্বিধাটি বাইরে থেকে নোড এবং অ্যাপাচি উভয়কেই অ্যাক্সেস করে। আমি দেখতে পাচ্ছি আপনার দুটি পছন্দ আছে:

  1. নোডেজেএস-এর সাথে সমস্ত মিলের অনুরোধগুলি প্রক্সিতে অ্যাপাচি সেট আপ করুন, যা ফাইল আপলোড এবং নোডে অন্য যা কিছু করবে।

  2. বিভিন্ন আইপিতে অ্যাপাচি এবং নোড রাখুন: পোর্ট সংমিশ্রণগুলি (যদি আপনার সার্ভারের দুটি আইপি থাকে তবে একটি আপনার নোড শ্রোতার সাথে আবদ্ধ হতে পারে, অন্যটি অ্যাপাচি-তে)।

আমি সন্দেহও করতে শুরু করেছি যে এটি আসলে আপনি যা খুঁজছেন তা হতে পারে না। যদি আপনার শেষ লক্ষ্যটি নোডেজ এবং আপনার কোনও ঠিকাদারের কাছে লোড করা কিছু "ফাইল হ্যান্ডলিং" অংশে আপনার অ্যাপ্লিকেশন লজিক লিখতে হয়, তবে এটি সত্যিকারের ভাষা বা ওয়েব সার্ভার নয় a


9

আপনি অ্যাপাচি এবং অন্যান্য সমস্ত নোডেজ অ্যাপ্লিকেশন উভয়ই প্রক্সিতে নোডেজ সহ বিপরীত প্রক্সি সার্ভার লেখার মতো একটি ভিন্ন পদ্ধতির ব্যবহার করতে পারেন।

প্রথমে আপনাকে অ্যাপাচি 80 পোর্ট ছাড়া অন্য কোনও বন্দরে চালানো দরকার run উদাহরণ: পোর্ট 8080

তারপরে আপনি নোডেজ সহ বিপরীত প্রক্সি স্ক্রিপ্ট লিখতে পারেন:

var proxy = require('redbird')({port: 80, xfwd: false);

proxy.register("mydomain.me/blog", "http://mydomain.me:8080/blog");
proxy.register("mydomain.me", "http://mydomain.me:3000");

নিম্নলিখিত নিবন্ধে এটি তৈরির পুরো প্রক্রিয়া বর্ণনা করে।

নোড জেএস রিভার্স প্রক্সির সাথে চালানো - রেডবার্ড ব্যবহার করা


2
ProxyPass /node http://localhost:8000/     
  • এটি আমার জন্য কাজ করেছিল যখন আমি httpd.conf এর পরিবর্তে httpd-vhosts.conf এ প্রবেশ করি
  • আমি আমার পরিবেশের উপরে এক্সএএমপিপি ইনস্টল করেছি এবং 80 পোর্টে অ্যাপাচে সমস্ত ট্র্যাফিকের দিকে তাকানোর চেষ্টা করছিলাম নোডেজেএস অ্যাপ্লিকেশনটি 8080 পোর্টে চলমান, যেমন : http: // লোকালহস্ট / [নাম_পরে_নোড_অ্যাপ্লিকেশন]

1

আমি উপরের উত্তরটি সার্টবট এসএসএল সার্ট এবং সিওআরএস অ্যাক্সেস-নিয়ন্ত্রণ-অনুমতি-শিরোনামগুলির সাথে একত্রিত করেছি এবং এটি কাজ করে চলেছে তাই আমি ভেবেছিলাম ফলাফলগুলি ভাগ করব।

অ্যাপাচি httpd.conf ফাইলের নীচে যুক্ত হয়েছে:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

অ্যাপাচি ভার্চুয়ালহোস্ট সেটিংস (পিএইচপি-র জন্য ডক রুটটি অ্যাপাচি এবং সার্টিবোটের সাথে এসএসএল এর অধীনে রয়েছে, যখন নোড.জেএস / সকেট.ইও সাইটটি 3000 পোর্টে চালিত হয় - এবং অ্যাপাচি থেকে এসএসএল সার্টি ব্যবহার করে) এছাড়াও নোড.জেএস সাইটটি ফোল্ডারের জন্য প্রক্সি ব্যবহার করে দেখুন / নোডেজ, সকেট.আইও, এবং ডাব্লুএস (ওয়েবসকেট):

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName www.example.com
    ServerAlias www.example.com
    DocumentRoot /var/html/www.example.com
    ErrorLog /var/html/log/error.log
    CustomLog /var/html/log/requests.log combined
    SSLCertificateFile /etc/letsencrypt/live/www.example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf

    RewriteEngine On
    RewriteCond %{REQUEST_URI}  ^socket.io          [NC]
    RewriteCond %{QUERY_STRING} transport=websocket [NC]
    RewriteRule /{.*}       ws://localhost:3000/$1  [P,L]

    RewriteCond %{HTTP:Connection} Upgrade [NC]
    RewriteRule /(.*) ws://localhost:3000/$1 [P,L]

    ProxyPass /nodejs http://localhost:3000/
    ProxyPassReverse /nodejs http://localhost:3000/

    ProxyPass /socket.io http://localhost:3000/socket.io
    ProxyPassReverse /socket.io http://localhost:3000/socket.io

    ProxyPass /socket.io ws://localhost:3000/socket.io
    ProxyPassReverse /socket.io ws://localhost:3000/socket.io

</VirtualHost>
</IfModule>

তারপরে আমার নোড.জেএস অ্যাপ (app.js):

var express = require('express');
var app = express();
    app.use(function(req, res, next) {
        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "X-Requested-With");
        res.header("Access-Control-Allow-Headers", "Content-Type");
        res.header("Access-Control-Allow-Methods", "PUT, GET, POST, DELETE, OPTIONS");
        next();
    });
var http = require('http').Server(app);
var io = require('socket.io')(http);

http.listen({host:'0.0.0.0',port:3000});

আমি একটি আইপ 4 শ্রোতাকে বাধ্য করি, তবে এটি alচ্ছিক - আপনি বিকল্প দিতে পারেন:

http.listen(3000);

node.js অ্যাপ্লিকেশন (app.js) কোডটি এর সাথে চালিয়ে যায়:

io.of('/nodejs').on('connection', function(socket) {
    //optional settings:
    io.set('heartbeat timeout', 3000); 
    io.set('heartbeat interval', 1000);

    //listener for when a user is added
    socket.on('add user', function(data) {
         socket.join('AnyRoomName');
         socket.broadcast.emit('user joined', data);
    });

    //listener for when a user leaves
    socket.on('remove user', function(data) {
         socket.leave('AnyRoomName');
         socket.broadcast.emit('user left', data);
    });

    //sample listener for any other function
    socket.on('named-event', function(data) {
         //code....
         socket.broadcast.emit('named-event-broadcast', data);
    });

    // add more listeners as needed... use different named-events...
});

অবশেষে, ক্লায়েন্ট পক্ষের (nodejs.js হিসাবে তৈরি):

//notice the /nodejs path
var socket = io.connect('https://www.example.com/nodejs');

//listener for user joined
socket.on('user joined', function(data) {
    // code... data shows who joined...
});

//listener for user left
socket.on('user left', function(data) {
    // code... data shows who left...
});

// sample listener for any function:
socket.on('named-event-broadcast', function(data) {
    // this receives the broadcast data (I use json then parse and execute code)
    console.log('data1=' + data.data1);
    console.log('data2=' + data.data2);
});

// sample send broadcast json data for user joined:
socket.emit('user joined', {
    'userid': 'userid-value',
    'username':'username-value'
});

// sample send broadcast json data for user left 
//(I added the following with an event listener for 'beforeunload'):
// socket.emit('user joined', {
//     'userid': 'userid-value',
//     'username':'username-value'
// });

// sample send broadcast json data for any named-event:
socket.emit('named-event', {
    'data1': 'value1',
    'data2':'value2'
});

এই উদাহরণে যখন জেএস লোড হয়, তখন এটি সকেটে একটি "নামযুক্ত-ইভেন্ট" উত্সাহিত করবে যা JSON এ ডেটা node.js / socket.io সার্ভারে প্রেরণ করবে।

পাথ / নোডেজ (ক্লায়েন্ট দ্বারা সংযুক্ত) এর অধীনে সার্ভারে io এবং সকেট ব্যবহার করে, ডেটা গ্রহণ করে তারপরে এটি সম্প্রচার হিসাবে পুনরায় বিক্রয় করে। সকেটের অন্য কোনও ব্যবহারকারী তাদের শ্রোতাদের "নামযুক্ত-ইভেন্ট-সম্প্রচার" দিয়ে ডেটা পাবেন। নোট করুন যে প্রেরক তাদের নিজস্ব সম্প্রচার গ্রহণ করবেন না।


0

আমি সম্প্রতি এই কিন্ডা ইস্যুতে ছুটে এসেছি, যেখানে আমাকে পিএইচপি ভিত্তিক কোডগনিটার প্রকল্পে ক্লায়েন্ট এবং সার্ভারের মধ্যে ওয়েবসকেট ব্যবহার করে যোগাযোগ করতে হবে।

আমি আমার পোর্ট (নোড অ্যাপ চালু আছে) Allow incoming TCP portsAllow outgoing TCP portsতালিকাগুলিতে যোগ করে এই সমস্যাটি সমাধান করেছি ।

আপনি Firewall Configurationsআপনার সার্ভারের WHM প্যানেলে এই কনফিগারেশনগুলি খুঁজে পেতে পারেন ।


-1

আমি একই তথ্য খুঁজছিলাম। অবশেষে @ স্ট্রেসিয়াসের উপরের উত্তরের লিঙ্কটি থেকে উত্তরটি খুঁজে পেয়েছি

http://arguments.callee.info/2010/04/20/running-apache-and-node-js-together/

80 পোর্টে অ্যাপাচি ওয়েবসাইট চালানোর চূড়ান্ত সমাধান এখানে দেওয়া হয়েছে, 8080 বন্দরে নোড জেএস পরিষেবা এবং .htaccess RewritRule ব্যবহার করুন

অ্যাপাচি ওয়েবসাইটের ডকুমেন্টরটে, নিম্নলিখিতগুলি যুক্ত করুন:

Options +FollowSymLinks -MultiViews

<IfModule mod_rewrite.c>

RewriteEngine on

# Simple URL redirect:
RewriteRule ^test.html$ http://arguments.callee.info:8000/test/ [P]

# More complicated (the user sees only "benchmark.html" in their address bar)
RewriteRule ^benchmark.html$ http://arguments.callee.info:8000/node?action=benchmark [P]

# Redirect a whole subdirectory:
RewriteRule ^node/(.*) http://arguments.callee.info:8000/$1 [P]

ডিরেক্টরি স্তর পুনর্নির্দেশের জন্য উপরের লিঙ্কটিতে প্রস্তাবিত (। +) নিয়ম রয়েছে, যার জন্য 'নোড /' এর পরে এক বা একাধিক অক্ষর প্রয়োজন। আমাকে এটিকে (। *) রূপান্তর করতে হয়েছিল যা আমার স্টাফগুলি কাজ করার জন্য শূন্য বা আরও বেশি।

লিঙ্কের জন্য অনেক ধন্যবাদ @ স্ট্রেসিয়াস


3
কেবলমাত্র লক্ষ করুন যে [পি] পতাকাটির জন্য অ্যাপাচিগুলি mod_proxyসক্ষম করা দরকার।
সাইমন পূর্ব

এটি অদক্ষ। পুনরায় লেখার ইঞ্জিনটিকে কেন একটি সরল পদক্ষেপের জন্য অনুরোধ করবেন ProxyPass?
মাইকেল ইরিগয়েন

-2

আমি ধরে নিচ্ছি যে আপনি ওয়েব অ্যাপ তৈরি করছেন কারণ আপনি অ্যাপাচি এবং নোড উল্লেখ করেছেন। দ্রুত উত্তর - এটি সম্ভব - হ্যাঁ। এটি প্রস্তাবিত - না। নোড এটির নিজস্ব ওয়েব সার্ভার এবং বেশিরভাগ ওয়েবসাইটগুলি 80 পোর্টে চলমান bu এগুলি এমন প্রশ্নগুলির উত্তর দেওয়া উচিত যারা জোয়েন্টে ভাল লোকদের মতো নোডেজ বজায় রাখে develop

পোর্টগুলির পরিবর্তে নোডের টেক স্ট্যাকের মূল্যায়ন করা ভাল যা বেশিরভাগের থেকে সম্পূর্ণ আলাদা এবং এটিই আমি এটি ভালবাসি তবে এতে কয়েকটি আপসও জড়িত যা আপনাকে আগে থেকেই সচেতন হওয়া উচিত।

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

আমি এখন যা বলেছিলাম তা থামিয়ে চিন্তাভাবনা করার সময় এসেছে।

আপনি কোন টেকস্ট্যাকটি ব্যবহার করছেন সে বিষয়ে এখনই আপনি সিদ্ধান্ত নিতে প্রস্তুত। যদি আপনার ওয়েবসাইট হাজার হাজার রেডিমেড অ্যাপ্লিকেশনগুলির মধ্যে কখনই অ্যাপাচি ব্যবহার করে না তবে নোডের জন্য যান যদি না হয় তবে আপনাকে প্রথমে আমি আগেই বলেছি এমন অনুমানগুলি অপসারণ করতে হবে।

শেষ পর্যন্ত, আপনার টেকস্ট্যাকের পছন্দটি কোনও পৃথক উপাদানগুলির চেয়ে গুরুত্বপূর্ণ।

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

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

এই পোস্টটি প্রায় এক বছরের পুরানো এবং সম্ভাবনাগুলি হ'ল আপনি ইতিমধ্যে সিদ্ধান্ত নিয়েছেন তবে আমি আশা করি যে আমার অভিজাত পরবর্তী ব্যক্তি যিনি অনুরূপ সিদ্ধান্তে চলেছেন তাদের সহায়তা করবে।

পড়ার জন্য ধন্যবাদ.

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