pooria vakili
pooria vakili
خواندن ۶ دقیقه·۳ ماه پیش

devops ngnix pm2 iis njs


تو این پست می خواهم در مورد ngnix صحبت کنم خیلی ساده بگویم توی ویندوز اگه برای سایت تان هاست ویندوزی بگیرید با iis server کار جلو می برید من یک پست جدا برای iis server می نویسم ولی این پست ngnix است که ngnix کامندلاین لینوکس و کار با کامند لاین در لینوکس در رابطه با ngnix خوب بلد باشید شما هر سایت بالا میارید یک اسمی داره مثلا سایت من دیجیکالا شما در ngnix سرور استاپ یا استارت بکنید اینطوری می نویسید
systematic start digikala
این به معنی است که من بعد از این که npm run build پروژه فرانت زدم می خوام با ngnix پروژه بالا بیارم که اول
systematic stop digikala
می زنم و در آخر کد بالا می زنم که سایتم بالا میاد ولی وسط کار سایت ارور ۵۰۲ bad gate way این بر می گرده تنظیمات ngnix که من تعیین کردم که بیشتر در مورد این توضیح می دهم
در ngnix وقتی پروژه تنظیم کنیم این به چند قسمت می گرده
server location http events
work station in events
به این برمی گرده که به سایت شما چند نفر سر زدن عدد دیفالت ۱۲۸ ۲۵۶ ۵۱۲ شما می توانید عددش تغییر بدهید




مثلا
even
که اینجا IP می نویسم و پورت جدید مشخص می کنیم که مثلا این پورت برای بک اند که با سواگراست

}
}
مثلا سرعت سایت من پایین می خوام با gzip که باینری و اسمبلی سرعت سایت در server که بالا نوشتم بالا می برم و ارور ۵۰۲ bad gate way داشت به چند چیز برمی گرده
یک ngnix چطور تعیین کردید و دو پکیج و فریم ورک استفاده می کنید به روز هست یا نه توی،ngnix حتما proxy ها یاد بگیرید اینجا یک proxy گرفتم برای جلو بردن سرور و location ,که با هم nestled یعنی تو در تو هستند باید همه proxy ها بلد باشید
اگه کار با ngnix سخت و مثل من برنامه نویس فرانت اند دولوپر که جاوااسکریپت خوب بلد با njs جلو برو با njs و جاوااسکریپت می توانید مسیر پروژه فرانت جلو می برید و با استفاده از کد داینامیک که با njs به ngnix می دهید مسیر اون تغییر بدهید
برنامه نویسان فرانت اند حواستان باشد پروژه به devops تحویل میدهید اگه با nuxt or next نوشتید فایل server داشته باشه که تو pm2 به مشکل برنخورید


njs in javascript

اگه می خواهید با جاواسکریپت به صورت داینامیک با ngnix کار کنید حتما سراغ Njs بروید

نمونه njs در جاواسکریپت







امروز می خواهم در مورد دواپس کمی صحبت کنم که هر برنامه نویس بک اند و فرانت اند بد نیست بلد باشد
فرض بگیریم پروژه ای که با next js nuxt js یا هر پروژه react vue در هاست ویندوز یا لینوکس قرار دهید
هاست لینوکس
۱) نصب نرم افزار winscp در ویندوز برای کپی کردن فایل ها در هاست لینوکس
۲) نصب نرم افزار git و باز کردن پنجره git bash کار با ssh اگه پکیج ها نصب نیست npm I بعد npm run build حتما از پروژه خودت build بگیرید.
۳) بلد بودن دستورات کامند لاین pm2 مثل
pm2 list
لیست پروژه موجود در شبکه نشان می دهد طبق جدول که افلاین آنلاین
pm2 save
پروژه ذخیره می کند
pm2 restart
پروژه در سایت قرار می دهید و در آخر بگویید کدام می خواهید قرار دهید طبق pm2 list می گیرید که از صفر نشان می دهد در آخر id می نویسید مثلا
pm2 restart 0
که id 0 طبق pm2 list که گرفتم نشان دادم
لیست کامل دستورات pm2
https://lnkd.in/dCCVP6DW
۴) بلد بودن دستورات کامند لاین لینوکسی مثل
ls cd sudo apt
۵) با ssh در git bash با بلد بودن user name password به هر هاست سروری وصل شوید
۶) اگر هم دیتابیس و بک اند دارید حتما از ngnix بلد باشید اگه پروژه فرانت هم next js یا nuxt js باز باید ngnix کار کنید چون اگه دستورات fqdn ثبت کنید نیاز،می شود
https://lnkd.in/d3GfzdUi
۷) نصب node js آخرین نسخه در لینوکس
هاست ویندوزی برای next js یا nuxt js
نصب نرم افزار node js سمت سرور و نصب خود node js که این دو نرم افزار متفاوت است
نصب نرم افزار iis server در ویندوز و بلد بودن که چطوری node js server روش فراهم کنید اگه پروژه react pure vue pure بود مثل cra vite نصب node js server نیاز نیست و در آخر بلد بودن پورت های شبکه که چطور در همین نرم افزار پورت تعیین کنید مثلا پورت ۹۰ پورت سواگر است و پورت ۶۰ به یک صفحه دیگری وصل می شود
از سایت خودتان در next js یا nuxt js حتما
google lighthouse webpagetest
بگیرید
در مورد google lighthouse حتما این پست در لینوکس بخوانید
https://lnkd.in/duuVXCc4
حتما سعی کنید هاستی که می خرید لینوکس باشد که سرعتش بالاتر از هاست ویندوز و برای کارهای غیر ضروری و ساده از هاست ویندوز استفاده کنید برای شرکت های برزگ یا پروژه های معمولی یا پیجیده از هاست لینوکسی استفاده کنید


نرم افزار iis در devops چیست و چه طور استفاده می کنیم
این iis در دو حالت
1) client
برای جایی به کار می رود که پروژه به نفر دیگه ای که در تیم هست نشان دهیم مثلا IP کامپیوتر من
۱۹۲.۱۶۸.۱۰.۲۰:۳۰۰۰
این صفحه از وب سایت در مروگر به بک اند فرانت uiux یا حتی کارفرما همزمان نشان دهیم
و آخری پورتی که استفاده می کنم برای این که iis در کامپیوتر خودتان نصب کنید وارد turn off on windows بخش add or remove programs در کنترل پنل شوید گزینه های asp net نسخه ۴ و hyper I've telnet client تیک می زنید وiis client می توانید استفاده کنید
سمت client یک برنامه نویس فرانت همراه با جستجو در گوگل می تواند یاد بگیرد چون امکانات ویندوز سرور نمی خواهد
2) server
این نسخه از iis می توانید در هاست ویندوزی استفاده کنید برای این چون سیستم سرور می‌دهند در خود سرور گزینه off on می زنید نرم افزار با توجه به پروژه ای دارید اگه csr مثلا با react pure vite vue ،با iis و مسیرپروژه تنظیم می کنید و اگه برنامه بک اند داشته و بک اند دات نت باشه ویژوال استادیو نصب می کنید و node js آخرین نسخه نصب می کنید اون به یک پورت دیگه در سواگر بالا میاورید ولی اگه پروژه با next js یا nuxt یک پروژه فول استک نود جی اس سمت سرور بریزید و کد سرور در پست ngnix نوشتم تو این پروژه بریزید با توجه به پروژه ای دارید هر چه پروژه سنگین تر برای هاست ویندوزی بیشتر هزینه کنید مثلا اگه پروژه ۶۰ صفحه ای دارید رم ۱۶ تا ۳۲ مناسب چون ویژوال استادیو در هاست ویندوز برای بک اند نصب کنید
هزینه یک پروژه ۶۰ صفحه ای در لینوکس ارزان تر بهینه و سرعت بالاتری دارد ولی در هاست ویندوز هزینه بیشتری برای سرورتان انجام دهید

منابع

https://iverique.medium.com/devops-reverse-proxy-configuration-with-nginx-910b1ad871df

https://github.com/nginx/njs-examples

https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/

https://carbon.now.sh/9c5j5PCcw6DhBh3U0AsW

https://virgool.io/@azolfaghar/%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7%DB%8C-nodejs-%D8%A8%D8%A7-pm2-prjgwponutit

pm2ngnixنرم افزارnode jsnjs
front-end developer
شاید از این پست‌ها خوشتان بیاید