在Debian上部署Node.js应用可以通过以下步骤完成:
1. 更新系统包
首先,确保你的Debian系统是最新的:
sudo apt update sudo apt upgrade -y
2. 安装Node.js和npm
你可以使用NodeSource的APT仓库来安装最新版本的Node.js和npm。
添加NodeSource仓库
选择你需要的Node.js版本(例如,14.x):
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
安装Node.js和npm
sudo apt install -y nodejs
验证安装:
node -v npm -v
3. 创建项目目录
创建一个新的目录来存放你的Node.js应用,并进入该目录:
mkdir my-node-app cd my-node-app
4. 初始化Node.js项目
使用npm初始化你的项目:
npm init -y
5. 安装依赖
安装你的应用所需的依赖包。例如,如果你使用Express:
npm install express
6. 创建应用文件
创建一个入口文件,例如app.js
:
const express = require('express'); const app = express(); const port = 3000; app.get('/', (req, res) => { res.send('Hello World!'); }); app.listen(port, () => { console.log(`App listening at http://localhost:${port}`); });
7. 配置Nginx作为反向代理
安装Nginx:
sudo apt install nginx -y
配置Nginx以将流量转发到你的Node.js应用:
sudo nano /etc/nginx/sites-available/my-node-app
添加以下内容:
server { listen 80; server_name your_domain_or_ip; location / { proxy_pass http://localhost: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; } }
启用该配置:
sudo ln -s /etc/nginx/sites-available/my-node-app /etc/nginx/sites-enabled
测试Nginx配置并重启服务:
sudo nginx -t sudo systemctl restart nginx
8. 启动Node.js应用
你可以使用pm2
来管理你的Node.js应用,使其在后台运行并自动重启。
安装pm2
:
sudo npm install pm2 -g
启动你的应用:
pm2 start app.js --name my-node-app
保存当前进程列表以便在系统重启后自动启动:
pm2 save
查看应用状态:
pm2 status
9. 配置防火墙
确保你的防火墙允许HTTP和HTTPS流量:
sudo ufw allow 'Nginx Full'
启用防火墙:
sudo ufw enable
10. 访问你的应用
打开浏览器并访问你的服务器IP地址或域名,你应该能看到你的Node.js应用正在运行。
通过以上步骤,你就可以在Debian上成功部署一个Node.js应用了。