日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

部署nodejs项目到服务器的一些总结

發布時間:2024/4/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 部署nodejs项目到服务器的一些总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝nodejs

首先在服務器上安裝nodejs并配置環境,這個可以參考官方的文檔,就不細說了

拷貝項目到服務器上

這里其實可以通過git直接clone在服務器上。當然正常發版一般是將代碼打包上傳到服務器上部署,可以通過pcsp傳送文件到服務器上:

(1)確保服務器(linux)已經準備好,開通了相應接口。(具體做法直接百度)

(2)將項目打包壓縮gz文件(windows下可以使用7-zip,先壓縮成tar,再壓縮成gz)

(3)打開電腦終端,進入pscp的目錄,輸入命令:

pscp [項目壓縮包的路徑] [username]@192.168.1.1:/home/[username]

然后輸入服務器的用戶密碼,即可將壓縮包傳送到服務器的/home/[username]下。

注意:用戶一定要有該文件夾的寫權限,否則無法傳送。

(4)解壓到指定目錄即可。

部署項目

我們使用pm2來進行項目部署,通過終端登上服務器,安裝pm2。

npm install -g pm2

然后進入項目目錄,通過下面的命令進行部署:

pm2 start bin/www

nodejs的入口js文件默認是bin/www,所以我們啟動這個文件。

啟動完成后就可以通過ip和端口訪問這個服務了。如果我們為這個端口綁定了域名,也可以直接通過域名進行訪問。

防火墻

如果在外網無法訪問這個接口,那么很可能是防火墻引起的。我們需要關閉防火墻或將這個端口加入白名單。

下面是防火墻的一些常用指令:

啟動: systemctl start firewalld

關閉: systemctl stop firewalld

查看狀態: systemctl status firewalld

開機禁用 : systemctl disable firewalld

開機啟用 : systemctl enable firewalld

下面是端口相關的一些指令:

添加: firewall-cmd --zone=public --add-port=80/tcp --permanent

(–permanent永久生效,沒有此參數重啟后失效)

重新載入: firewall-cmd --reload

查看: firewall-cmd --zone= public --query-port=80/tcp

刪除: firewall-cmd --zone= public --remove-port=80/tcp --permanent

pm2命令

下面是一些常用的pm2命令:

安裝:npm install -g pm2

啟動并命名進程:pm2 start bin/www --name <my-api>

啟動命名進程,設置cpu數為x:pm2 start bin/www -i x --name <my-api>

啟動程序:pm2 start <app_name|id|all>

列舉進程:pm2 list

退出程序:pm2 stop <app_name|id|all>

重起應用:pm2 restart <app_name|id|all>

程序信息:pm2 describe id|all

監控:pm2 monit

實時集中log處理: pm2 logs

查看錯誤日志: pm2 logs <app_name|id>

API:pm2 web (端口:9615 )

日志

如果啟動失敗或服務異常退出,可以通過日志進行排查。

pm2的錯誤日志位于/root/.pm2/logs/目錄下,日志文件以進程名命名。

在終端執行pm2 logs,可以實時的看到nodejs的console信息了。

多環境

可以使用json配置來啟動項目,這樣就可以啟動不同的環境(開發/生產)

pm2 start xxx.json

可以在nodejs項目下配置不同環境的配置文件,尤其是使開發和生產環境使用不用的端口和名稱

配置文件的簡單示例:

dev.json

{"apps": [{"name": "custom-dev","script": "./bin/www","env": {"PORT": "10008",}}] }

release.json

{"apps": [{"name": "custom","script": "./bin/www","env": {"PORT": "8000",}}] }

在nodejs默認生成的入口文件bin/www中,端口會默認獲取進程env的配置,如下

var port = normalizePort(process.env.PORT || '8000');

所以通過上面的方式進行啟動,不同的環境就會使用不同的端口。

調試

有時我們需要在服務端進行簡單的調試,雖然我們可以用pm2 logs查看實時console信息,但是如果服務器上同時運行多個項目,那么就會有很多無效信息。我們可以直接使用node命令來啟動

node ./bin/www

但是這樣啟動的話會直接使用我們在www里設置好的接口,而這個接口很可能是生產環境的接口,所以我們要避免使用這個接口,加上端口即可,如下:

PORT=1234 node ./bin/www

這樣就是以1234接口啟動了

總結

以上是生活随笔為你收集整理的部署nodejs项目到服务器的一些总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。