溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何在Linux服務(wù)器中部署Nodejs項(xiàng)目

發(fā)布時(shí)間:2021-05-06 15:49:12 來(lái)源:億速云 閱讀:146 作者:Leah 欄目:web開(kāi)發(fā)

如何在Linux服務(wù)器中部署Nodejs項(xiàng)目?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

什么是Linux系統(tǒng)

Linux是一種免費(fèi)使用和自由傳播的類(lèi)UNIX操作系統(tǒng),是一個(gè)基于POSIX的多用戶(hù)、多任務(wù)、支持多線(xiàn)程和多CPU的操作系統(tǒng),使用Linux能運(yùn)行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。

登錄服務(wù)器

采用 GitBash 或者 Xshell 或者 CMD 等終端登錄連接到服務(wù)器

ssh 用戶(hù)名@ip地址

假如第一次使用服務(wù)器先更新下,以下程序基本采用 Yum 源的安裝方式:

yum update -y

Yum 命令

// 1 安裝 
yum install package  // 安裝指定的安裝包package 

// 2 更新和升級(jí) 
yum update  // 全部更新 
yum update package  // 更新指定程序包package
yum check-update  // 檢查可更新的程序 
yum upgrade package  // 升級(jí)指定程序包package 

// 3 查找和顯示 
yum info // 列出所有可以安裝或更新的包的信息
yum info package //顯示安裝包信息package 
yum list // 顯示所有已經(jīng)安裝和可以安裝的程序包 
yum list package  // 顯示指定程序包安裝情況package
yum search package // 搜索匹配特定字符的package的詳細(xì)信息

// 4 刪除程序 
yum remove | erase package  // 刪除程序包package
yum deplist package  // 查看程序package依賴(lài)情況

// 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 安裝

服務(wù)器下安裝 git;開(kāi)發(fā)源碼上傳服務(wù)器的方式可以使用 傳統(tǒng)的 scp 或者 ftp 方式,但這里使用 Git 流來(lái)管理,在服務(wù)器端執(zhí)行 git 操作;

2.1、查看是否安裝了git

rpm -qa|grep git
或者
 git --version
或者
 yum info git

如何在Linux服務(wù)器中部署Nodejs項(xiàng)目

如何在Linux服務(wù)器中部署Nodejs項(xiàng)目

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

如何在Linux服務(wù)器中部署Nodejs項(xiàng)目

2.2、安裝Git

yum install git

如何在Linux服務(wù)器中部署Nodejs項(xiàng)目

輸入y,并回車(chē)

如何在Linux服務(wù)器中部署Nodejs項(xiàng)目

再使用 rpm -qa|grep git 來(lái) 或者 git version 查看是否已經(jīng)安裝好了Git。

如何在Linux服務(wù)器中部署Nodejs項(xiàng)目

2.3、克隆遠(yuǎn)程項(xiàng)目到服務(wù)器

Node 安裝

服務(wù)器下安裝,選擇以下任意一種方法部署Node.js環(huán)境;

3.1、使用二進(jìn)制文件安裝

該部署過(guò)程使用的安裝包是已編譯好的二進(jìn)制文件。解壓之后,在bin文件夾中就已存在nodenpm,無(wú)需重復(fù)編譯。 完成以下操作,使用二進(jìn)制文件部署Node.js環(huán)境: 下載Node.js安裝包

wget nodejs.org/dist/v6.9.5…

解壓文件

tar xvf node-v6.9.5-linux-x64.tar.xz

創(chuàng)建軟鏈接,您就可以在任意目錄下直接使用nodenpm命令

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

查看 nodenpm 版本

node -v
npm -v

至此,Node.js環(huán)境已安裝完畢。軟件默認(rèn)安裝在/root/node-v6.9.5-linux-x64/目錄下

如果需要將該軟件安裝到其他目錄(例如:/opt/node/)下,請(qǐng)進(jìn)行如下操作:

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

3.2、使用 NVM 管理多版本(yum 安裝)

NVM(Node Version Manager)是Node.js的版本管理軟件,使您可以輕松在Node.js各個(gè)版本間進(jìn)行切換。適用于長(zhǎng)期做node開(kāi)發(fā)的人員或有快速更新node版本、快速切換node版本的場(chǎng)景

完成以下操作,使用NVM安裝多個(gè) 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

安裝多個(gè)Node.js版本

nvm install v14.0.0 -g
nvm install v14.10.0 -g

運(yùn)行nvm ls查看已安裝的 Node.js 版本,當(dāng)前使用的版本為v7.4.0。返回結(jié)果如下所示

[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)

運(yùn)行nvm use v7.4.0切換Node.js版本至v7.4.0。返回結(jié)果如下所示。

[root@iZXXXXZ .nvm]# nvm use v7.4.0
Now using node v7.4.0

Nginx 部署

服務(wù)器下安裝;

sudo yum install -y nginx
// 檢測(cè)是否安裝成功,驗(yàn)證 Nginx 配置是否正確;
nginx -t

啟動(dòng)命令 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

Pm2 安裝

工程項(xiàng)目?jī)?nèi)安裝,cd 至項(xiàng)目?jī)?nèi);

npm i pm2 -g

啟動(dòng)項(xiàng)目

pm2 start app // 實(shí)際執(zhí)行文件在app 工程下的 index.js

pm2 常用命令:

// 安裝
sudo npm i pm2 -g
 --watch:監(jiān)聽(tīng)文件變化
 // 2表示啟動(dòng)多少實(shí)例
pm2 start app.js --watch i 2
 // 根據(jù)機(jī)器cpu核心數(shù)最大限度利用資源
pm2 start app -i max

 // 查看運(yùn)行的進(jìn)程
pm2 ls

 // 關(guān)閉
pm2 stop app
pm2 stop all

// 重啟
pm2 restart app

我們也可以在項(xiàng)目中建一個(gè) process.yml 配置文件

apps:
  - script : app.js
    intance : 2
    watch : true
    env : 
      NODE_ENV : production

然后執(zhí)行

pm2 start process.yml

MongoDB 安裝

工程項(xiàng)目?jī)?nèi)安裝;使用 Yum 源安裝;

配置系統(tǒng)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         # 名稱(chēng)
baseurl      # 獲得下載的路徑
gpkcheck=1   # 表示對(duì)從這個(gè)源下載的rpm包進(jìn)行校驗(yàn);
enable=1     # 表示啟用這個(gè)源。
gpgkey       # gpg驗(yàn)證

最新 MongoDB 配置地址:

docs.mongodb.com/manual/tuto…

保存退出:
:wq

退出不保存
:wq!

安裝MongoDB

sudo yum install -y mongodb-org

驗(yàn)證

rpm -qa |grep mongodb

rpm -ql mongodb-org-server

運(yùn)行結(jié)果分別如下圖:

如何在Linux服務(wù)器中部署Nodejs項(xiàng)目

啟動(dòng)MongoDB(常用指令)

// 開(kāi)啟MongoDB
sudo service mongod start  或者
systemctl start mongod.service  

sudo chkconfig mongod on  # 加入開(kāi)機(jī)啟動(dòng)
sudo service mongod restart # 重啟MongoDB

// 關(guān)閉MongoDB
sudo service mongod stop  # 關(guān)閉防火墻

// 卸載MongoDB
sudo yum erase $(rpm -qa | grep mongodb-org)    # 卸載MongoDB
sudo rm -r /var/log/mongodb  # 刪除日志文件
sudo rm -r /var/lib/mongo    # 刪除數(shù)據(jù)文件

實(shí)現(xiàn)遠(yuǎn)程連接Mongodb

修改綁定 ip 默認(rèn)127.0.0.1 只允許本地連接, 所以修改為 bindIp:0.0.0.0,退出保存;.1

vi /etc/mongod.conf

// 編輯以下內(nèi)容
// 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.

重啟MongoDB

sudo service mongod restart 
復(fù)制代碼

開(kāi)放對(duì)外端口,關(guān)閉防火墻

iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT

遠(yuǎn)程連接

// 啟動(dòng) MongoDB 服務(wù),后面是服務(wù)器公網(wǎng) ip 地址 + 默認(rèn)端口 27017
mongo 10.128.218.14:27017
1.0 創(chuàng)建用戶(hù),設(shè)置賬號(hào),密碼,權(quán)限
// admin數(shù)據(jù)庫(kù)(管理使用)
> use admin
switched to db admin
> db.createUser({ user:"root", pwd:"123456", roles:["root"] })
Successfully added user: { "user" : "root", "roles" : [ "root" ] }

// 其他數(shù)據(jù)庫(kù) test (用作開(kāi)發(fā)使用)
> use test
switched to db test
> db.createUser({ user:"admin", pwd:"123456", roles:["readWrite", "dbAdmin"] })
Successfully added user: { "user" : "root", "roles" : [ "root" ] }
2.0 修改 mongodb.conf 文件,啟用身份驗(yàn)證
vi /etc/mongod.conf

security:
  authorization: "enabled"   # disable or enabled
3.0 重啟 MongoDB
sudo service mongod restart
4.0 用戶(hù)認(rèn)證
> use admin
switched to db admin
> db.auth("root", "123456")
1 // 授權(quán)成功
 
// 其他常用命令
db.updateUser(user, writeConcern) # 更新用戶(hù)
db.dropUser('test') # 刪除用戶(hù)
5.0 遠(yuǎn)程連接
// 終端連接
mongo 10.128.218.14:27017/database -u username -p password

// mongoose方式連接(項(xiàng)目?jī)?nèi)的方式)
mongoose.connect('mongodb://admin:123456@10.128.218.14:27017/test?options...', {useNewUrlParser: true});

# 用戶(hù)名:密碼@域名或者服務(wù)器公網(wǎng)IP:端口/數(shù)據(jù)庫(kù)名稱(chēng)?配置項(xiàng)

Window本地啟動(dòng) MongoDB:

1.0 管理員身份打開(kāi) cmd ;

2.0 進(jìn)入本地 MongoDB 安裝目錄 cd C:\Program Files\MongoDB\Server\4.4

3.0 執(zhí)行 net start mongodb

如何在Linux服務(wù)器中部署Nodejs項(xiàng)目

其他命令

1、端口被占用了:檢查端口占用命令. 根據(jù)報(bào)錯(cuò)提示, 我這里檢查的是 4000 端口:

lsof -i:4000

如何在Linux服務(wù)器中部署Nodejs項(xiàng)目

2、殺掉當(dāng)前進(jìn)程

kill 2805

在執(zhí)行

npm run dev

可以了?。?! 查看服務(wù)器個(gè)程序占用內(nèi)存大小

du -h --max-depth=1

如何在Linux服務(wù)器中部署Nodejs項(xiàng)目

Linux shell 腳本

自己編寫(xiě)服務(wù)運(yùn)行腳本,直接在服務(wù)器上運(yùn)行,下面是運(yùn)行指令,腳本內(nèi)容這里就不展示了,可以自己補(bǔ)充 xshell 腳本相關(guān)知識(shí)。

sh run.sh // 啟動(dòng)服務(wù)腳本;
sh stop.sh // 啟動(dòng)服務(wù)腳本;
netstat -nltp  // 當(dāng)前服務(wù)器端口狀態(tài);

看完上述內(nèi)容,你們掌握如何在Linux服務(wù)器中部署Nodejs項(xiàng)目的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI