如何在VPS上搭建Node.js网站?
| 相关工具/技术 |
用途说明 |
推荐选项 |
| Ubuntu/CentOS |
操作系统 |
Ubuntu 20.04 LTS |
| Node.js |
运行环境 |
Node.js 16.x LTS |
| PM2 |
进程管理 |
PM2 5.x |
| Nginx |
反向代理 |
Nginx 1.18+ |
| Git |
版本控制 |
Git 2.25+ |
| SSH |
远程连接 |
OpenSSH |
VPS搭建Node.js网站完整指南
主要步骤概览
| 步骤 |
操作内容 |
预计耗时 |
| 1 |
VPS基础环境准备 |
10-15分钟 |
| 2 |
Node.js环境安装配置 |
5-10分钟 |
| 3 |
网站代码部署 |
5-10分钟 |
| 4 |
进程管理与反向代理 |
10-15分钟 |
| 5 |
域名解析与SSL证书 |
5-10分钟 |
详细操作流程
步骤1:VPS基础环境准备
操作说明:
首先需要通过SSH连接到你的VPS服务器,更新系统软件包并安装必要的依赖工具。
使用工具提示:
- SSH客户端(如PuTTY、Terminal)
- 系统包管理器(apt/yum)
# 连接到VPS服务器
ssh root@yourserverip
更新系统软件包(Ubuntu/Debian)
apt update && apt upgrade -y
安装必要工具
apt install -y curl wget git
步骤2:Node.js环境安装配置
操作说明:
使用NodeSource仓库安装稳定的Node.js LTS版本,这是运行Node.js应用的基础。
使用工具提示:
# 添加NodeSource仓库(以Node.js 16.x为例)
curl -fsSL https://deb.nodesource.com/setup16.x | sudo -E bash -
安装Node.js
apt install -y nodejs
验证安装
node --version
npm --version
步骤3:网站代码部署
操作说明:
创建网站目录,上传你的Node.js应用代码,并安装项目依赖。
使用工具提示:
# 创建网站目录
mkdir -p /var/www/myapp
cd /var/www/myapp
克隆或上传你的代码
git clone your-repository-url .
安装项目依赖
npm install
如果是生产环境,安装生产依赖
npm install --production
步骤4:进程管理与反向代理
操作说明:
使用PM2来管理Node.js进程,确保应用在后台稳定运行,并配置Nginx作为反向代理。
使用工具提示:
# 全局安装PM2
npm install -g pm2
使用PM2启动应用
pm2 start app.js --name "myapp"
设置PM2开机自启
pm2 startup
pm2 save
安装并配置Nginx
apt install -y nginx
创建Nginx配置文件
nano /etc/nginx/sites-available/myapp
Nginx配置示例:
server {
listen 80;
servername yourdomain.com;
location / {
proxypass http://localhost:3000;
proxyhttpversion 1.1;
proxysetheader Upgrade $httpupgrade;
proxysetheader Connection 'upgrade';
proxysetheader Host $host;
proxycachebypass $httpupgrade;
}
}
步骤5:域名解析与SSL证书
操作说明:
将域名解析指向你的VPS IP地址,并使用Certbot获取免费的SSL证书,启用HTTPS加密。
使用工具提示:
# 启用Nginx站点
ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
测试Nginx配置
nginx -t
重启Nginx
systemctl restart nginx
安装Certbot获取SSL证书
apt install -y certbot python3-certbot-nginx
certbot --nginx -d your_domain.com
常见问题与解决方案
| 问题 |
原因 |
解决方案 |
| 应用无法通过域名访问 |
Nginx配置错误或端口未开放 |
检查Nginx配置文件语法,确保防火墙开放80/443端口 |
| Node.js应用启动后自动停止 |
进程未使用PM2管理或代码错误 |
使用PM2守护进程,检查应用日志排查代码问题 |
| 502 Bad Gateway错误 |
Node.js应用未运行或端口不匹配 |
确认应用在正确端口运行,检查PM2状态和Nginx代理设置 |
| 内存占用过高 |
内存泄漏或并发量过大 |
优化代码,使用PM2集群模式,考虑升级VPS配置 |
| SSL证书续期失败 |
Certbot自动续期配置问题 |
手动续期证书,检查crontab任务,更新Certbot版本 |
通过以上步骤,你可以成功在VPS上部署Node.js网站。每个环节都需要仔细检查配置,特别是Nginx和PM2的配置文件的正确性。如果在部署过程中遇到问题,建议查看相关服务的日志文件来获取详细的错误信息。
发表评论