引言:为什么要在VPS上部署JavaScript应用?
开发一个基于JavaScript(Node.js)的现代Web应用只是完成了一半工作。另一半同样重要的部分是部署,即将您的项目部署到互联网上可访问的真实服务器上。与共享主机不同,使用虚拟专用服务器(VPS)可以让您完全控制运行环境。您可以根据需要配置服务器,安装任何依赖项,并确保高性能。
在本指南中,我们将逐步讲解将一个典型的JavaScript(Node.js)应用部署到VPS上的过程。我们将涵盖所有阶段:从服务器的初始设置到使用PM2进程管理器和Nginx反向代理服务器在生产模式下运行应用。本文面向已经熟悉Node.js基础和Linux命令行的开发者。
1. 准备VPS并进行初始设置
第一步是从任何提供商(如DigitalOcean、Linode、Vultr或俄罗斯本土的类似服务)租用一台VPS。推荐的最低配置:1 vCPU,1-2 GB RAM。操作系统选择Ubuntu 22.04 LTS(或更新版本)。
1.1. 通过SSH连接到服务器
获取IP地址和root密码后,从您的终端连接到服务器:
ssh root@您的_服务器_IP
如果您使用SSH密钥(推荐),请指定私钥的路径:
ssh -i ~/.ssh/id_rsa root@您的_服务器_IP
1.2. 创建用户和基本安全设置
永远不要一直使用root账户操作。创建一个新用户并授予其sudo权限:
adduser myuser
usermod -aG sudo myuser
然后,为新用户配置SSH密钥(从您的本地机器复制公钥),并在文件/etc/ssh/sshd_config中禁用密码登录:
PasswordAuthentication no
重启SSH服务:sudo systemctl restart sshd。
1.3. 安装必要的软件
更新包管理器并安装Node.js(推荐通过NodeSource安装LTS版本)、Git和Nginx:
sudo apt update && sudo apt upgrade -y
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs git nginx
检查版本:node -v 和 npm -v。
2. 克隆仓库并安装依赖
现在服务器已准备就绪,我们将您的应用代码传输到服务器上。
2.1. 克隆项目
切换到用户的主目录,并从GitHub(或其他Git托管服务)克隆仓库:
cd /home/myuser
git clone https://github.com/您的_用户名/您的_仓库.git myapp
cd myapp
2.2. 安装依赖并进行测试运行
安装package.json中列出的所有npm包:
npm install
如果项目使用了环境变量(例如,用于数据库或API密钥),请创建.env文件并填写内容:
nano .env
示例内容:
PORT=3000
DATABASE_URL=mongodb://localhost:27017/mydb
NODE_ENV=production
手动启动应用以确认其能正常运行:
node app.js
通过curl http://localhost:3000检查可访问性,或者在浏览器中打开http://您的_IP:3000(需先在防火墙中放行该端口)。如果一切正常,停止进程(按Ctrl+C)。
3. 配置PM2进程管理器
通过node app.js启动的应用会在您关闭SSH会话时停止。为了使其持续运行,我们使用PM2——一个Node.js进程管理器,它可以在应用崩溃时自动重启并进行管理。