讲师中心 微信公众号
AI工具推荐 视频效率加速

详解Linux服务器中部署Nodejs项目的方法

大敏大大_3315

大敏大大_3315

发布时间:2021-05-06 10:34:57

|

4055人浏览过

|

来源于掘金社区

转载

本篇文章详细介绍一下linux部署nodejs项目的方法,手把手教你在 linux 服务器部署 nodejs 项目。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

详解Linux服务器中部署Nodejs项目的方法

登录服务器

采用 GitBash 或者 Xshell 或者 CMD 等终端登录连接到服务器

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;开发源码上传服务器的方式可以使用 传统的 scp 或者 ftp 方式,但这里使用 Git 流来管理,在服务器端执行 git 操作;

2.1、查看是否安装了git

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

1.png

2.png

若已经安装,需要先卸载。卸载命令如下:rpm -e --nodeps git  或者  rpm -e git

3.png

2.2、安装Git

yum install git

4.png

输入y,并回车

5.png

再使用 rpm -qa|grep git 来 或者 git version 查看是否已经安装好了Git。

6.png

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

查看 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

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的所有版本

Linux Security Scanner
Linux Security Scanner

Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...

下载
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 至项目内;

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

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

运行结果分别如下图:

7.png

启动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('test') # 删除用户

5.0 远程连接

// 终端连接
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:端口/数据库名称?配置项

Window本地启动 MongoDB:

1.0 管理员身份打开 cmd ;

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

3.0 执行 net start mongodb

8.png

其他命令

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

lsof -i:4000

9.png

2、杀掉当前进程

kill 2805

在执行

npm run dev

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

du -h --max-depth=1

10.png

Linux shell 脚本

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

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

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

热门AI工具

更多
花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

423

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3927

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

6745

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

601

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1496

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3978

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

122

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

537

2026.01.13

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

100

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn