ویرگول
ورودثبت نام
Mehrdad Masoumi
Mehrdad Masoumi
خواندن ۲ دقیقه·۴ سال پیش

انتشار و دیپلوی کردن nextjs روی سرور

امروز میخام برای همیشه بحث استقرار,آپلود , انتشار و به اصلاح deploy کردن نکست جی اس روی سرور رو ببندم . پس با دقت به کارهایی که میگم توجه کنید و مرحله به مرحله اجرا کنید.


برادر و خواهر عزیز میدونم خیلی گشتی و بلاخره به اینجا رسیدی ولی خیالت راحت باشه اینایی که میگم جوابه. اولین چیزی که باید بدونی اینه که نکست جی اس فقط روی سرور اختصاصی قابل اجراست . پس زحمت بکش اگر سرور نداری یه سرور ابری که ارزونم هست تهیه کن. روزی 5 هزار تومن هم سرور هست که رم 2 گیگ و سی پی یو 1 هسته ای با حافظه 25 گیگ در اختیارت قرار میده.

خب بعد از اینکه اینکارو کردی و روی سرور کارهایی مثل نصب نود و ... رو انجام دادی و دی ان اس دامنه رو ست کردی و دامینت اومد بالا توی مرورگر ( اگر بلد نیستی میتونی با من در ارتباط باشی, البته هزینه باید پرداخت کنی :) میتونی برای سراغ بقیه کارها


اولین کاری که میکنی یه vhost درست میکنی ( فرض که توی لینوکس هستیم )
توی این ویرچوال هاستت میگی که پورت مثلا 3000 رو اختصاص بده به دامنت, و وب سرورت رو یه ریست میکنی
معنی کاری که تا اینجا کردیم اینه که وقتی مثلا میزنیم example.com دامنه با دی ام اس خودش اشاره میکنه به سرور ما و توی سرور ما هم اومدیم برای این دامنه یه vhost تعریف کردیم و گفتیم ادرس محلی localhost:3000 رو برای این کار در نظر بگیر

خب بریم سراغ نکست جی اس

اگر از روتر داینامیکش استفاده کردی که باید بگم بری و از custom server استفاده کنی اینم یه نمونه پروژه

https://github.com/mluberry/nextjs-express

خب حالا توی لینوکس باید به سیستم عامل حالی کنیم که بره فایل server.js رو اجرا کنه. اما یه مشکلی داریم. از اونجا که لینوکس کامندی هست و باید از طریق کامند لاین بهش وصل شیم بعد از اینکه کامند لاین بسته شه ( نرم افزار putty ) سایت ماهم میاد پایین . مثلا فرض کنید ما توی سرور رفتیم زدیم yarn start یا npm start و اونجا هم مثه لوکالمون سایت رو برامون روی پورت مثلا localhost:3000 بالا اورده. اما ما اگه کامند لاین رو ببندیم همه چی میپوکه.

برای حل این مشکل میتونید از pm2 استفاده کنید. با pm2 میتونیم خیلی راحت یه فایل رو در بک گراند لینوکس در حالت اجرا بزاریم و با خیال راحت putty رو ببندیم .


فراموش نکنید باید process.env.NODE_ENV رو به صورت گلوبال روی production ست کنید.


کسایی که نیاز به راهنمایی بیشتر دارن میتونن با شماره یا ایمیل من تماس بگیرن تا اموزش تصویری رو در اختیارشون بزارم . هزینه این اموزش کامل و 30 دقیقه ای 200 هزار تومن هست.

mehrdad.masoumi517@gmail.com

+989398624739


nextjsدیپلویdeploy
شاید از این پست‌ها خوشتان بیاید