سرور های نوشته شده با node js می تونه جای nginx یا آپاچی رو بگیره؟

درود خدمت شما دوستان . یک چند روزی هست node js کمی فکر منو مشغول کرده ؟

که با این همه تعریفی که در نسخه جدید node js 7 می کنند آیا برای جایگزین شدن کامل بجای آپاچی یا nginx مناسب هست ؟
اگر نیست چرا ؟
آیا می شه روش به صورت کامل حساب کرد هم php و هم rails هم خود کتابخونه های جاوااسکریپت رو مدیریت کرد بدون مشکل ؟

ماژول های زیادی داخل npm داره که می گه پشتیبانی می کنه

دیگه بیشتر از این توضیح دادن فکر می کنم اسپم باشه منتظر نظرات شما دوستان هستم با تشکر

در تئوری میشه ولی ایده خوبی نیست

Apache, Nginx هر دو دهه ها برای این کار بهتر و بهتر شدند. module ها برای logging. healthcheck , reverse proxy,… برای هرکدوم وجود داره و هر مشکلی رو Apache, Nginx که داشته باشی در اینترت جواب داره

Nginx همون مدل Node داره Reactor Pattern
Async با Eventloop اما کاملا با C نوشته شده و بسیار سریعه.
هر کاری در Node برای جایگزین کردن Nginx میشه یه چیز دست و پا شکسته

1 پسندیده

نظرات تو اینترنت هم خیلی زیاده . برخی ها گفتند برای چت روم و ساخت اون بسیار کارامده از یک جایی الان شما می فرمایید امکاناتی روی خود nginx وجود دارد از جایی هم می گند می شه روی خود ngnix استفاده کرد .
کلا درک نکردم چرا باید این مورد رو یاد گرفت ؟
آیا اصلا نیاز هست بجاش شاید چیز بهتری باشه ؟

Ngnix اکثرا نقش HTTP Server و Load Balancer داره که جلوی server های Node به کار می ره
Nodejs یک Application Server هست یعنی برای اینکه request در سطح برنامه با منطق(Application Level)، به کار میره
آیا NodeJS میتونه مثل ngnix عمل کنه؟ بله ولی برای این کار نیست و اصولا برای یک لایه بالاتر استفاده میشه
Node در واقع کار شبیه Rack انجام میده

در خلاصه به هردو نیازهست Ngnix برای load balancing, routing,…
Node یا Rack برای کار با Request در سطح برنامه

Node به دلیل مدل Eventloop برای برنامه های بی‌درنگ Realtime خوب عمل میکنه اما مشکلات خودشو داره

1 پسندیده

ممنونم بخاطر پاسختون .
امروز با صحبت های شما و همینطور جستجو بیشتر متوجه تلفیقی کار کردن این دو پروسه شدم .

ولی برام جالب بود که واقعا ریل تایم یا عامل بی درنگ دقیقا با node انجام پذیره یا مثل angular ما حس بی درنگ بودن یا ریل تایم بودن اون رو داریم .

تو دوره کارشناسی ریل تایم رو برای ما به صورت زیر تعریف کردن البته نه کاملا علمی

ریل تایم بودن به این معنی که همیشه یک سری عملات روتین هست که در حال انجامه مثل یک لوپ به همین منظور بسیار سریع هست و شما تغییرات بدون اینکه واقعا حس کنید درخواست دادید دارید ارسال یا می بینید.

اصل هدف من برای رفتن روی node بالا بردن پیشرفت در یک مرحله از کارام هست خیلی ها پیشنهاد دادند اگر به صورت مثال در حال استفاده از php و انگولار و mysql هستی بهتره پس روی node سرمایه گذاری کنی .

و از اونجایی که من اصلا اطلاعات در این رابطه ندارم می خواستم ببنیم آیا من بخوام یک سایتی کاملا ریل تایم درست کنم و اطلاعات بسیار سریع در هرجا تغییر بکنه

انتخاب بهتر من چی هست ؟

مثلا انگولار + php یا روبی + mysql + نود جی اس ؟ یا امکان بهتری دارم ؟

Node و Socket.IO برای برنامه realtime انتخاب بهتریه اما با Actioncable در Rails میشه و یا با Redis

Node و Socket.IO برای سیستم های (soft realtime) ساخته شده یعنی latency تاحدی مقبوله
Node وقتی یک رویداد نشر میشه به تمام socket ها که به رویداد گوش میدن پخش میشه. Publish/Subscribe

NodeJS انتخاب خوبی برای سایت Realtime

2 پسندیده

real time application به نرم افزار ی گفته میشه که در یک چهارچوب زمانی عمل کنه که حس آنی بودن کنش و واکنش را به کاربر القا کنه.
Angular2 و ریلز میتونه ترکیب خوبی باشه و در این صورت TypeScript کمک زیادی به شما می کنه:
https://www.angularonrails.com/angular-2-tour-heroes-tutorial-rails-backend/

React هم گزینه ایه که خیلی پرطرفداره به شرطی که بتونید معماری Flux و One Way Data Flow را خوب درک و اجرا کنید.

Meteor هم که به خوبی از React استفاده میکنه ساده ترین گزینست.

2 پسندیده