首頁  >  文章  >  web前端  >  詳解Linux伺服器中部署Nodejs專案的方法

詳解Linux伺服器中部署Nodejs專案的方法

青灯夜游
青灯夜游轉載
2021-05-06 10:34:573597瀏覽

本篇文章詳細介紹Linux部署Nodejs專案的方法,手把手教你在 Linux 伺服器部署 NodeJs 專案。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

詳解Linux伺服器中部署Nodejs專案的方法

登入伺服器

採用GitBashXshellCMD 等終端登入連線到伺服器

ssh 用户名@ip地址

假如第一次使用伺服器先更新下,以下程式基本上採用Yum 來源的安裝方式:

yum update -y

#Yum 指令

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

#伺服器下安裝git;開發原始碼上傳伺服器的方式可以使用傳統的scpftp 方式,但這裡使用Git 流來管理,在伺服器端執行git 操作;

2.1、查看是否安裝了git

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

詳解Linux伺服器中部署Nodejs專案的方法

詳解Linux伺服器中部署Nodejs專案的方法

#若已經安裝,需要先解除安裝。卸載指令如下:rpm -e --nodeps git  或 rpm -e git

詳解Linux伺服器中部署Nodejs專案的方法

##2.2、安裝Git

yum install git

詳解Linux伺服器中部署Nodejs專案的方法

#輸入y,並回車

詳解Linux伺服器中部署Nodejs專案的方法

詳解Linux伺服器中部署Nodejs專案的方法

#再使用rpm -qa|grep git

來或

git version 看是否已經安裝好了Git。

2.3、複製遠端專案​​到伺服器

Node 安裝伺服器下安裝,選擇以下任一方法部署Node.js環境;

##3.1、使用二進位檔案安裝

該部署過程所使用的安裝套件是已編譯好的二進位檔案。解壓縮之後,在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

查看

nodenpm

版本

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
3.2、使用NVM 管理多版本(yum 安裝)

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

Nginx 部署

伺服器下方安裝;

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

##在工程專案內安裝,cd 至專案內;<pre class="brush:js;toolbar:false;">npm i pm2 -g</pre>啟動專案

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

MongoDB 安裝

工程專案內安裝;使用Yum 來源安裝;

設定係統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!

安装MongoDB

sudo yum install -y mongodb-org

验证

rpm -qa |grep mongodb

rpm -ql mongodb-org-server

运行结果分别如下图:

詳解Linux伺服器中部署Nodejs專案的方法

启动MongoDB(常用指令)

// 开启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    # 删除数据文件

实现远程连接Mongodb

修改绑定 ip 默认127.0.0.1 只允许本地连接, 所以修改为 bindIp:0.0.0.0,退出保存;.1

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.

重启MongoDB

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

1.0 创建用户,设置账号,密码,权限

// 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" ] }

2.0 修改 mongodb.conf 文件,启用身份验证

vi /etc/mongod.conf

security:
  authorization: "enabled"   # disable or enabled

3.0 重启 MongoDB

sudo service mongod restart

4.0 用户认证

> use admin
switched to db admin
> db.auth("root", "123456")
1 // 授权成功
 
// 其他常用命令
db.updateUser(user, writeConcern) # 更新用户
db.dropUser(&#39;test&#39;) # 删除用户

5.0 远程连接

// 终端连接
mongo 10.128.218.14:27017/database -u username -p password

// mongoose方式连接(项目内的方式)
mongoose.connect(&#39;mongodb://admin:123456@10.128.218.14:27017/test?options...&#39;, {useNewUrlParser: true});

# 用户名:密码@域名或者服务器公网IP:端口/数据库名称?配置项

Window本地启动 MongoDB:

1.0 管理员身份打开 cmd ;

2.0 进入本地 MongoDB 安装目录 cd C:\Program Files\MongoDB\Server\4.4

3.0 执行 net start mongodb

詳解Linux伺服器中部署Nodejs專案的方法

其他命令

1、端口被占用了:检查端口占用命令. 根据报错提示, 我这里检查的是 4000 端口:

lsof -i:4000

詳解Linux伺服器中部署Nodejs專案的方法

2、杀掉当前进程

kill 2805

在执行

npm run dev

可以了!!! 查看服务器个程序占用内存大小

du -h --max-depth=1

詳解Linux伺服器中部署Nodejs專案的方法

Linux shell 脚本

自己编写服务运行脚本,直接在服务器上运行,下面是运行指令,脚本内容这里就不展示了,可以自己补充 xshell 脚本相关知识。

sh run.sh // 启动服务脚本;
sh stop.sh // 启动服务脚本;
netstat -nltp  // 当前服务器端口状态;

更多编程相关知识,请访问:编程入门!!

以上是詳解Linux伺服器中部署Nodejs專案的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:juejin.cn。如有侵權,請聯絡admin@php.cn刪除