使用 PM2 部署 Next 服務
最近阿里雲 99 服務器比較火,我也買了一個玩玩,感覺不錯,自用足矣,平常寫點東西,部署一些服務,用着也挺舒服。
最近學習的 Next 框架,感覺挺好用,就打算部署一個人博客,但是部署到服務器上。
部署的的時候發現,對比 Vercel,服務器的部署方式有點麻煩,需要安裝 Node、然後還要安裝 PM2 管理進程,於是就打算寫一篇文章記錄一下。
準備
首先,你需要準備一台服務器,我這裏使用的是阿里雲服務器,如果你需要購買的話,我還是推薦阿里雲 99 一年,可續 4 年。
服務器是安裝的 CentOS, 購買後直接設置密碼,然後使用 Xshell 連接服務器。
安裝 Node、PM2
首先登陸到服務器:
ssh username@ip
回車輸入密碼即可,然後安裝 Node
sudo apt-get update
sudo apt-get install nodejs
安裝成功後,使用命令查看版本:
node -v
npm -v
版本號顯示出來,説明安裝成功。
PM2 是一個輕量級的、開源的管理工具,可用於快速、安全地啓動和管理 Node.js 應用程序。安裝 PM2 很簡單,你可以使用以下命令來安裝:
sudo npm install pm2 -g
然後使用命令查看版本:
pm2 -version
版本號顯示出來,説明安裝成功。
部署 Next 服務
首先使用 FTP 工具,將項目上傳到服務器,我這裏使用的是 FileZilla,上傳成功後,使用命令進入項目目錄:
cd /home/www/next-blog
運行打包命令:
npm install
npm run build
啓動 Next 服務
pm2 start --name yourappname npm -- start
啓動成功後,使用命令查看服務狀態:
pm2 status
如果看到類似下面的信息,説明啓動成功:
然後就可以通過 ip:port 訪問了,比如我的 ip 是 123.123.123.123,端口是 3000,那麼訪問地址就是:
http://123.123.123.123:3000, run 起來後,會自動打開瀏覽器,然後就可以看到頁面了。
如果看不到,那可能是安全組沒看,需要到服務設置裏查詢一下安全組,放開之後就可以正常訪問了。
常用命令
登陸
ssh username@ip
查詢端口並關閉:
查找佔用目標端口的進程可以使用
sudo lsof -i :端口號
命令來查找佔用目標端口的進程,其中端口號是你想要關閉的端口的實際數字。該命令會列出佔用該端口的進程的詳細信息,包括進程 ID(PID)和進程名稱。
關閉佔用端口的進程可以使用
sudo kill -9 進程ID
命令來關閉佔用端口的進程,其中進程 ID 是上一步中找到的佔用端口的進程的 ID。該命令會強制終止該進程,釋放端口。
確認端口已關閉
為了確認端口已經成功關閉,可以再次使用
sudo lsof -i :端口號
命令來查找該端口的佔用情況。如果沒有輸出結果,説明該端口已經成功關閉。
PM2 常用命令
PM2 是一個流行的進程管理器,它可以幫助你管理和維護在服務器上運行的應用程序。
以下是一些常用的 PM2 命令:
pm2 start <app_name>:啓動一個應用程序。
pm2 restart <app_name>:重啓一個應用程序。
pm2 stop <app_name>:停止一個應用程序。
pm2 delete <app_name>:刪除一個應用程序。
pm2 show <app_name>:展示一個應用程序的詳情。
pm2 list:列出所有正在運行的應用程序。
pm2 monit:監視所有應用程序的 CPU 和內存使用情況。
pm2 logs:顯示所有應用程序的日誌。
pm2 flush:清空所有應用程序的日誌。
pm2 save:保存當前應用程序列表。
pm2 resurrect:重新加載保存的應用程序列表。
pm2 update:保存當前進程,殺死 PM2,並恢復進程。