ربط الـNodeJS مع الدومين الرئيسي
السلام عليكم ورحمة الله وبركاته..
في هذا الدرس الثالث من دروس النود جي اس سنقوم بتعلم كيفية ضبط ويب سيرفر NGINX للعمل مع تطبيقات / مايكرو سيرفس الNodeJS و تحويل requests الى بورتات تطبيقاتك بشكل ضمني
ماهو الnginx؟
ببساطة هو بروكسي سيرفر عالي الاداء او ويب سيرفر، بديل الapache.
في ماذا يستخدم؟
يستخدم في ريفيرس بروكسي للبروتوكولات HTTP, HTTPS, SMTP, IMAP, POP3 و كذلك لعمل توازن الضغط على السيرفر مثلا عندما يكون هناك عدد كبير جدا من الrequests تستطيع توزيع هذه الطلبات بالupstream بين عدة بورتات في نفس السيرفر او سيرفر خارجي مثلا اذا كان التطبيق او الموقع مبرمج بالNodeJS.
بالعربي: لا تحاتي بتعرف كلشي بعد شوي.
اولا: تثبيت الويب سيرفر.
لتثبيت الويب سيرفر nginx اتبع التعليمات / الخطوات التالية:
- افتح التيرمنال وقم بإيقاف الapache اذا كان مثبت sudo /etc/init.d/apache stop
- حدث sudo apt-get update
- ثبت sudo apt-get install nginx
- تأكد ان الويب سيرفر يعمل sudo /etc/init.d/nginx status
ملاحظة: مهم جدا ايقاف Apache قبل تثبيت Nginx
ثانيا: تشغيل تطبيقك الNode على الدومين الرئيسي.
لتشغيل التطبيق عليك تحويل جميع الطلبات requests التي تأتي من العميل الى الPort الذي يعمل عليه التطبيق (3000 مثلا) عبر الويب سيرفر NGINX.
ولعمل ذلك، افتح التيرمنال و قم بمتابعة هذه الاوامر
- اذهب لمجلد الويب سيرفر cd /etc/ngin/sites-available
- اكتب ls وسترى ملف بإسم default.
- افتح الملف للتعديل بإستخدام vim او nano وفي هذا الدرس سنستخدم الاول sudo vim default
- امسح كلشي واكتب هذا الكود
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
كونفيقريشن الـNginx
التعليقات (0)
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !