ربط الـNodeJS مع الدومين الرئيسي

AbdullaScriptمنذ 7 سنوات

السلام عليكم ورحمة الله وبركاته..

 

في هذا الدرس الثالث من دروس النود جي اس سنقوم بتعلم كيفية ضبط ويب سيرفر NGINX للعمل مع تطبيقات / مايكرو سيرفس الNodeJS و تحويل requests الى بورتات تطبيقاتك بشكل ضمني

 

ماهو الnginx؟

ببساطة هو بروكسي سيرفر عالي الاداء او ويب سيرفر،  بديل الapache.

 

في ماذا يستخدم؟

يستخدم في ريفيرس بروكسي للبروتوكولات HTTP, HTTPS, SMTP, IMAP, POP3 و كذلك لعمل توازن الضغط على السيرفر مثلا عندما يكون هناك عدد كبير جدا من الrequests تستطيع توزيع هذه الطلبات بالupstream بين عدة بورتات في نفس السيرفر او سيرفر خارجي مثلا اذا كان التطبيق او الموقع مبرمج بالNodeJS.

media-20170616.png.387b6efaa0d406b6693c1431891866d0.png

 

بالعربي: لا تحاتي بتعرف كلشي بعد شوي.

اولا: تثبيت الويب سيرفر.

لتثبيت الويب سيرفر nginx اتبع التعليمات / الخطوات التالية:

  1. افتح التيرمنال وقم بإيقاف الapache اذا كان مثبت sudo /etc/init.d/apache stop
  2. حدث sudo apt-get update
  3. ثبت sudo apt-get install nginx
  4. تأكد ان الويب سيرفر يعمل sudo /etc/init.d/nginx status

 

ملاحظة: مهم جدا ايقاف Apache قبل تثبيت Nginx

 

ثانيا: تشغيل تطبيقك الNode على الدومين الرئيسي.

لتشغيل التطبيق عليك تحويل جميع الطلبات requests التي تأتي من العميل الى الPort الذي يعمل عليه التطبيق (3000 مثلا) عبر الويب سيرفر NGINX.

59442fc1222c3_media-20170616(1).png.dc86a0b20da12a2f3360ea55a39bbe78.png

 

ولعمل ذلك، افتح التيرمنال و قم بمتابعة هذه الاوامر

  1. اذهب لمجلد الويب سيرفر cd /etc/ngin/sites-available
  2. اكتب ls وسترى ملف بإسم default.
  3. افتح الملف للتعديل بإستخدام vim او nano وفي هذا الدرس سنستخدم الاول sudo vim default
  4. امسح كلشي واكتب هذا الكود

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name www.example.com example.com;
    access_log  /path/to/log/static_domain_access.log;
 
    location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://127.0.0.1:3000;
        proxy_redirect off;

    }

  
}

 

اخيرا قم بإعادة تشغيل الويب سيرفر

اقتباس

sudo /etc/init.d/nginx restart

 

افتح المتصفح و اكتب موقعك http://www example.com

 

Bonus

إذا كان لديك تطبيق \ موقع كبير جدا او API و تريد عمل load balancing لتوزيع عمليه الطلبات في الصورتين ادناه الطريقة لذلك, لاحظ ان التطبيق يعمل على اكثر من بورت وكذلك الـproxy pass هو عباره عن اسم الـupstream .cluster

 

تطبيق الNode

594432930816e_Screenshotfrom2017-06-1622-32-53.png.88bd47899a0f4e63b87bf6207b4f26bc.png

 

كونفيقريشن الـNginx

594432e338bbd_Screenshotfrom2017-06-1622-32-43.png.0202dd1d5c52e0e8e7a8bbdc5a3093ae.png

كلمات دليلية:
5
إعجاب
3023
مشاهدات
0
مشاركة
1
متابع
متميز
محتوى رهيب

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !