TOP云提供高性价比云服务器租用,有中国内地/港澳台、海外等全球各地节点,TOP云国内云服务器只要有域名备案号就能直接用,无须重复备案;港澳台及海外云服务器不用备案,购买之后直接使用,省时省力省心。价格实惠,续费同价,2核2G5M仅需27元每月,8核8G50M仅需66元每月,更多配置套餐请进入下面网址了解:
TOP云总站云服务器:https://topyun.vip/server/buy.html
TOP云C站云服务器:https://c.topyun.vip/cart
在云服务器上部署 Node.js 应用是开发和上线 Web 应用、API 服务或后端程序的常见方式。部署过程包括安装 Node.js 环境、上传应用代码、安装依赖、启动应用,以及配置反向代理(如 Nginx)和进程管理工具(如 PM2)来保证应用的稳定性。
一、部署 Node.js 应用的流程概述
登录云服务器:通过 SSH 登录到你的云服务器。
安装 Node.js 环境:在服务器上安装 Node.js 和 npm(或 yarn)。
上传应用代码:将本地开发的 Node.js 应用代码上传到服务器。
安装依赖:在服务器上安装项目所需的依赖包。
启动应用:运行 Node.js 应用。
配置进程管理工具:使用 PM2 管理 Node.js 应用进程,保证应用崩溃后自动重启。
配置反向代理(可选):使用 Nginx 作为反向代理,将外部请求转发到 Node.js 应用。
开放端口并测试:确保云服务器的安全组和防火墙放行了应用端口,并通过浏览器或工具测试访问。
二、详细部署步骤
以下以 Ubuntu 20.04 为例,介绍如何部署一个简单的 Node.js 应用(如 Express 框架开发的应用)。如果你使用的是其他系统(如 CentOS),部分命令可能需要调整。
1. 登录云服务器
使用 SSH 登录到你的云服务器:
ssh 用户名@服务器IP
例如:
ssh root@123.123.123.123
2. 安装 Node.js 环境
在服务器上安装 Node.js 和 npm(Node.js 的包管理工具)。推荐使用 NodeSource 提供的安装脚本安装最新的 LTS 版本(长期支持版本),这样可以避免使用系统自带的过旧版本。
(1)安装 NodeSource 脚本
以安装 Node.js 18.x 为例:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
如果你需要安装其他版本,可以将 setup_18.x 替换为其他版本号,如 setup_16.x 或 setup_20.x。
(2)安装 Node.js 和 npm
sudo apt install -y nodejs
(3)验证安装
安装完成后,检查 Node.js 和 npm 的版本:
node -v npm -v
输出类似:
v18.16.0 9.5.1
如果你需要使用 yarn(Facebook 开发的包管理工具),可以通过以下命令安装:
sudo npm install -g yarn yarn -v
3. 上传应用代码到服务器
将本地开发的 Node.js 应用代码上传到服务器。你可以使用以下任意一种方式:
方法一:使用 scp 命令(适合小项目)
从本地机器上传整个项目文件夹到服务器:
scp -r /本地项目路径 用户名@服务器IP:/目标路径
例如:
scp -r ~/my-node-app root@123.123.123.123:/var/www/
这会将本地的 my-node-app 文件夹上传到服务器的 /var/www/ 目录下。
方法二:使用 Git(适合团队协作或版本控制)
如果你的项目托管在 GitHub、GitLab 等平台,可以直接在服务器上克隆代码:
cd /var/www/ git clone https://github.com/你的用户名/你的项目仓库.git
进入项目目录:
cd 你的项目仓库
4. 安装依赖
进入项目目录,安装项目所需的依赖包:
npm install
如果你的项目使用 yarn,可以运行:
yarn install
确保你的项目根目录下有 package.json 文件,因为依赖包信息存储在该文件中。
5. 启动应用
在项目目录下运行应用:
方法一:直接运行(不推荐用于生产环境)
node app.js
如果你的入口文件不是 app.js,而是其他文件(如 index.js 或 server.js),请替换为实际的入口文件。
这种方式启动的应用会在终端关闭后自动退出,因此不推荐用于生产环境。
方法二:使用 PM2 管理进程(推荐)
PM2 是一个流行的 Node.js 进程管理工具,可以用来启动、停止、重启应用,并在应用崩溃时自动重启。
(1)全局安装 PM2
sudo npm install -g pm2
(2)使用 PM2 启动应用
pm2 start app.js
如果你的入口文件不是 app.js,请替换为实际的入口文件,如:
pm2 start index.js
(3)查看运行状态
pm2 list
输出会显示当前运行的应用及其状态。
(4)设置开机自启
为了让应用在服务器重启后自动启动,可以保存当前的 PM2 进程列表并设置开机自启:
pm2 save pm2 startup
按照提示执行生成的命令(通常是类似 sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u 用户名 --hp /home/用户名 的命令)。
6. 配置反向代理(推荐使用 Nginx)
直接通过 Node.js 应用监听端口访问(如 http://服务器IP:3000)可能会带来一些问题,比如:
需要手动指定端口号。
缺乏 HTTPS 支持。
防火墙可能需要开放多个端口。
使用 Nginx 作为反向代理,可以将外部请求转发到 Node.js 应用,同时提供 HTTPS、负载均衡等功能。
(1)安装 Nginx
如果尚未安装 Nginx,可以通过以下命令安装:
sudo apt update sudo apt install nginx -y
启动并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
(2)配置 Nginx 反向代理
编辑 Nginx 的默认配置文件(或创建一个新的配置文件):
sudo vi /etc/nginx/sites-available/default
修改 server 块,添加反向代理配置。假设你的 Node.js 应用运行在 3000 端口:
server { listen 80; server_name 你的服务器IP或域名; location / { proxy_pass http://127.0.0.1:3000; # 将请求转发到本地的 3000 端口 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
如果你使用域名,将 server_name 设置为你的域名(如 example.com),并确保域名已解析到服务器 IP。
(3)检查 Nginx 配置并重启
sudo nginx -t sudo systemctl reload nginx
7. 开放端口并测试
(1)开放防火墙端口
如果你的服务器启用了防火墙(如 ufw),需要开放 Node.js 应用的端口(如 3000)和 Nginx 的端口(如 80):
sudo ufw allow 3000/tcp sudo ufw allow 80/tcp sudo ufw reload
如果你使用的是云平台(如阿里云、腾讯云等),还需要在云平台的安全组中放行这些端口。
(2)测试访问
如果你配置了 Nginx 反向代理,可以通过浏览器访问 http://你的服务器IP 或 http://你的域名。
如果直接访问 Node.js 应用,可以通过浏览器访问 http://你的服务器IP:3000。
三、总结
步骤 | 操作 |
---|---|
1. 登录服务器 | 使用 SSH 登录到云服务器 |
2. 安装 Node.js | 使用 NodeSource 安装最新的 LTS 版本 |
3. 上传代码 | 使用 scp 或 Git 将代码上传到服务器 |
4. 安装依赖 | 运行 npm install 或 yarn install |
5. 启动应用 | 使用 PM2 管理进程,保证稳定性 |
6. 配置反向代理 | 使用 Nginx 将外部请求转发到 Node.js 应用 |
7. 开放端口 | 确保防火墙和安全组放行了相关端口 |
8. 测试访问 | 通过浏览器或工具测试应用是否正常运行 |
如果你告诉我你使用的:
操作系统(如 Ubuntu 20.04、CentOS 7)
Node.js 版本(如 16.x、18.x)
是否使用域名或 HTTPS
我可以提供更具体的指导。