如何在Linux服務器中部署Nodejs項目?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
登錄服務器
采用 GitBash 或者 Xshell 或者 CMD 等終端登錄連接到服務器
ssh 用戶名@ip地址
假如第一次使用服務器先更新下,以下程序基本采用 Yum 源的安裝方式:
yum update -y
// 1 安裝 yum install package // 安裝指定的安裝包package // 2 更新和升級 yum update // 全部更新 yum update package // 更新指定程序包package yum check-update // 檢查可更新的程序 yum upgrade package // 升級指定程序包package // 3 查找和顯示 yum info // 列出所有可以安裝或更新的包的信息 yum info package //顯示安裝包信息package yum list // 顯示所有已經安裝和可以安裝的程序包 yum list package // 顯示指定程序包安裝情況package yum search package // 搜索匹配特定字符的package的詳細信息 // 4 刪除程序 yum remove | erase package // 刪除程序包package yum deplist package // 查看程序package依賴情況 // 5 清除緩存 yum clean packages // 清除緩存目錄下的軟件包 yum clean headers // 清除緩存目錄下的 headers yum clean oldheaders // 清除緩存目錄下舊的 headers yum clean, yum clean all // (= yum clean packages; yum clean oldheaders) 清除緩存目錄下的軟件包及舊的headers
服務器下安裝 git;開發源碼上傳服務器的方式可以使用 傳統的 scp 或者 ftp 方式,但這里使用 Git 流來管理,在服務器端執行 git 操作;
rpm -qa|grep git 或者 git --version 或者 yum info git


若已經安裝,需要先卸載。卸載命令如下:rpm -e --nodeps git 或者 rpm -e git

yum install git

輸入y,并回車

再使用 rpm -qa|grep git 來 或者 git version 查看是否已經安裝好了Git。

服務器下安裝,選擇以下任意一種方法部署Node.js環境;
該部署過程使用的安裝包是已編譯好的二進制文件。解壓之后,在bin文件夾中就已存在node和npm,無需重復編譯。
完成以下操作,使用二進制文件部署Node.js環境:
下載Node.js安裝包
wget nodejs.org/dist/v6.9.5…
解壓文件
tar xvf node-v6.9.5-linux-x64.tar.xz
創建軟鏈接,您就可以在任意目錄下直接使用node和npm命令
ln -s /root/node-v6.9.5-linux-x64/bin/node /usr/local/bin/node ln -s /root/node-v6.9.5-linux-x64/bin/npm /usr/local/bin/npm
查看 node、npm 版本
node -v npm -v
至此,Node.js環境已安裝完畢。軟件默認安裝在/root/node-v6.9.5-linux-x64/目錄下
如果需要將該軟件安裝到其他目錄(例如:/opt/node/)下,請進行如下操作:
mkdir -p /opt/node/ mv /root/node-v6.9.5-linux-x64/* /opt/node/ rm -f /usr/local/bin/node rm -f /usr/local/bin/npm ln -s /opt/node/bin/node /usr/local/bin/node ln -s /opt/node/bin/npm /usr/local/bin/npm
NVM(Node Version Manager)是Node.js的版本管理軟件,使您可以輕松在Node.js各個版本間進行切換。適用于長期做node開發的人員或有快速更新node版本、快速切換node版本的場景
完成以下操作,使用NVM安裝多個 Node.js 版本:
使用git將源碼克隆到本地的~/.nvm目錄下,并檢查最新版本
yum install git
git clone https://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
激活NVM
echo ". ~/.nvm/nvm.sh" >> /etc/profile source /etc/profile
列出Node.js的所有版本
nvm list-remote
安裝多個Node.js版本
nvm install v14.0.0 -g nvm install v14.10.0 -g
運行nvm ls查看已安裝的 Node.js 版本,當前使用的版本為v7.4.0。返回結果如下所示
[root@iZXXXXZ .nvm]# nvm ls v6.9.5 -> v7.4.0 system stable -> 7.4 (-> v7.4.0) (default) unstable -> 6.9 (-> v6.9.5) (default)
運行nvm use v7.4.0切換Node.js版本至v7.4.0。返回結果如下所示。
[root@iZXXXXZ .nvm]# nvm use v7.4.0 Now using node v7.4.0
服務器下安裝;
sudo yum install -y nginx // 檢測是否安裝成功,驗證 Nginx 配置是否正確; nginx -t 啟動命令 service nginx start 停止命令 service nginx stop 重啟命令 service nginx restart # config: /etc/nginx/nginx.conf 安裝目錄 # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid 日志文件在var/log/nginx
工程項目內安裝,cd 至項目內;
npm i pm2 -g
啟動項目
pm2 start app // 實際執行文件在app 工程下的 index.js
pm2 常用命令:
// 安裝 sudo npm i pm2 -g --watch:監聽文件變化 // 2表示啟動多少實例 pm2 start app.js --watch i 2 // 根據機器cpu核心數最大限度利用資源 pm2 start app -i max // 查看運行的進程 pm2 ls // 關閉 pm2 stop app pm2 stop all // 重啟 pm2 restart app
我們也可以在項目中建一個 process.yml 配置文件
apps: - script : app.js intance : 2 watch : true env : NODE_ENV : production
然后執行
pm2 start process.yml
工程項目內安裝;使用 Yum 源安裝;
vi /etc/yum.repos.d/mongodb-org-4.4.repo 添加以下信息:
[mongodb-org-4.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc name # 名稱 baseurl # 獲得下載的路徑 gpkcheck=1 # 表示對從這個源下載的rpm包進行校驗; enable=1 # 表示啟用這個源。 gpgkey # gpg驗證
最新 MongoDB 配置地址:
docs.mongodb.com/manual/tuto…
保存退出: :wq 退出不保存 :wq!
sudo yum install -y mongodb-org
rpm -qa |grep mongodb rpm -ql mongodb-org-server
運行結果分別如下圖:

// 開啟MongoDB sudo service mongod start 或者 systemctl start mongod.service sudo chkconfig mongod on # 加入開機啟動 sudo service mongod restart # 重啟MongoDB // 關閉MongoDB sudo service mongod stop # 關閉防火墻 // 卸載MongoDB sudo yum erase $(rpm -qa | grep mongodb-org) # 卸載MongoDB sudo rm -r /var/log/mongodb # 刪除日志文件 sudo rm -r /var/lib/mongo # 刪除數據文件
vi /etc/mongod.conf // 編輯以下內容 // network interfaces net: port: 27017 bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
sudo service mongod restart 復制代碼
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
// 啟動 MongoDB 服務,后面是服務器公網 ip 地址 + 默認端口 27017 mongo 10.128.218.14:27017
// admin數據庫(管理使用)
> use admin
switched to db admin
> db.createUser({ user:"root", pwd:"123456", roles:["root"] })
Successfully added user: { "user" : "root", "roles" : [ "root" ] }
// 其他數據庫 test (用作開發使用)
> use test
switched to db test
> db.createUser({ user:"admin", pwd:"123456", roles:["readWrite", "dbAdmin"] })
Successfully added user: { "user" : "root", "roles" : [ "root" ] }vi /etc/mongod.conf security: authorization: "enabled" # disable or enabled
sudo service mongod restart
> use admin
switched to db admin
> db.auth("root", "123456")
1 // 授權成功
// 其他常用命令
db.updateUser(user, writeConcern) # 更新用戶
db.dropUser('test') # 刪除用戶// 終端連接
mongo 10.128.218.14:27017/database -u username -p password
// mongoose方式連接(項目內的方式)
mongoose.connect('mongodb://admin:123456@10.128.218.14:27017/test?options...', {useNewUrlParser: true});
# 用戶名:密碼@域名或者服務器公網IP:端口/數據庫名稱?配置項1.0 管理員身份打開 cmd ;
2.0 進入本地 MongoDB 安裝目錄 cd C:\Program Files\MongoDB\Server\4.4
3.0 執行 net start mongodb

1、端口被占用了:檢查端口占用命令. 根據報錯提示, 我這里檢查的是 4000 端口:
lsof -i:4000

2、殺掉當前進程
kill 2805
在執行
npm run dev
可以了?。?! 查看服務器個程序占用內存大小
du -h --max-depth=1

自己編寫服務運行腳本,直接在服務器上運行,下面是運行指令,腳本內容這里就不展示了,可以自己補充 xshell 腳本相關知識。
sh run.sh // 啟動服務腳本; sh stop.sh // 啟動服務腳本; netstat -nltp // 當前服務器端口狀態;
看完上述內容,你們掌握如何在Linux服務器中部署Nodejs項目的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。