اجرای هم زمان nodejs در کنار apache2 در سرور php

به نام دانای بر حق

مقدمه

یکی از سوالاتی که ذهن کسانی که با node.js کار میکنند رو در گیر میکنه استفاده هم زمان در کنار سرور هایی که روی اونها apache نصب هستش و مشکل دقیقا زمانی شروع میشود که شما دوست دارید هر دو بر روی پورت 80 اجرا بشوند و چرا که express.js  نیز همواره قصد داره یه پورت جدید رو شنود کنه و در کنار آدرس وبسایت مثلا :8080 نمایش داده میشه، برای رفع این مشکل باید چه کاری کنیم؟

 

راه حل ها

در اینجا ۲ راه حل اساسی برای نمایش هر دو سرور در پورت 80 و یا 443 وجود دارد که هر دو رو راه حل مبتنی بر proxy میباشد تا این مشکل برطرف شود:

فعال کردن پروکسی بر روی آپاچی که توضیح آن را در ادامه میدهیم

فعال کردن پروکسی در node.js که شما رو به این مقاله ارجاع میدهیم

توضیح روش آپاچی

در روش مذکور ما مبنا رو بر Ubuntu گذاشتیم که شما میتوانید از روی الگوی معرفی شده این عمل رو روی سیستم عامل دیگری اگر نصب دارید انجام دهید.

مرحله اول فعال کردن مود های آپاچی با دستورات زیر در ترمینال لیست مود های زیر رو فعال میکنیم:

مرحله دوم ریستارت کردن آپاچی و اطمینان از اجرای صحیح

مرحله سوم راهندازی برنامه nodejs خود روی سرور :

مثلا کد زیر رو نوشته ایم و اجرا میکنیم وارد جزئیات چگونه نوشتن و نصب پکیج های آن نمیشویم:

خب بعد از اجرا یعنی برنامه ی ما بر روی پورت 3000 اجرا شده است.

مرحله چهارم حال ما این برنامه رو در دو جای مختلف اجرا میکنیم برای نمایش چگونگی فعال سازی. برای این کار تنظیمات میزبان مجازی و یا همان  VirtualHost  آپاچی خود را باید تغییر دهید که من با دستور زیر آماده تغییر کردم:

مرحله پنجم افزودن آنچه میخواهیم من فرض میگیرم که دامنه mydomain.com بر روی لوکال خودم ست شده است که با تغییر روی hosts میتوانید به صورت مجازی دامنه را ip بدهیم با فرض فوق و subdomain.mydomain.com هم که ساب دامین است نیز باید روی لوکال باشد من دستورات زیر را به انتهای فایل اضافه میکنم:

اطلاعات رو ذخیره و فایل رو میبندیم

مرحله ششم ریستارت کردن مجدد آپاچی:

نکته: اگر به هر دلیل آپاچی شما دیگر بالا نیومد اطلاعاتی که اضافه کردید رو پاک کنید و دوباره آپاچی رو ریستارت کنید

خب حالا دست پخت شما آماده است و باید

را ببنید.

اگر پیام زیر را دیدید:

یا برنامه node.js شما اجرا نیست یا آدرس برنامه nodejs شما اشتباه در کافنیگ وارد شده در مثال بالا این آدرس را http://localhost:8080/ باز کنید تا مطئن شوید

 

باشد که رستگار شوید

‌A1Gard

اول از همه کوچک ترین عضو مجموعه 4xmen بنده حقیر هستم. در ثانی یک توسعه دهنده هستم زمینه های تخصصی کارم :‌ Delphi, PHP, C++ ,Python, JavaScript, Unity game engine, C#, asm و علاقه مند به لینوکس، RCE ، کریپتوگرافی هستم. تا الان حضرت حق اینا رو به ما داده و هر وقت که بخواد ازمون میگیره دست خودشه. یا حق، با حق، تا حق

More Posts

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *