在Ubuntu上部署Node.js项目涉及几个步骤,包括安装Node.js、设置环境变量、上传项目文件、安装依赖项以及启动项目。以下是一个详细的步骤指南:
你可以使用NodeSource的二进制分发库来安装Node.js。以下是安装最新版本的Node.js的步骤:
# 更新包列表
sudo apt update
# 安装NodeSource库
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
# 安装Node.js和npm
sudo apt-get install -y nodejs
安装完成后,你可以验证Node.js和npm是否正确安装:
node -v
npm -v
如果你需要设置环境变量,可以在~/.bashrc
或~/.profile
文件中添加它们。例如:
export NODE_ENV=production
然后重新加载配置文件:
source ~/.bashrc
你可以使用scp
、rsync
或通过FTP等方式将你的Node.js项目文件上传到Ubuntu服务器。以下是使用scp
的示例:
scp -r /path/to/your/project username@your_server_ip:/path/to/destination
进入项目目录并安装依赖项:
cd /path/to/destination/your_project
npm install
为了更好地处理HTTP请求,你可以使用Nginx作为反向代理。以下是安装和配置Nginx的步骤:
sudo apt update
sudo apt install nginx
编辑Nginx配置文件(通常位于/etc/nginx/sites-available/default
):
sudo nano /etc/nginx/sites-available/default
添加以下内容:
server {
listen 80;
server_name your_server_ip_or_domain;
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;
}
}
保存并退出编辑器,然后测试Nginx配置:
sudo nginx -t
重新加载Nginx以应用更改:
sudo systemctl reload nginx
你可以使用pm2
来管理Node.js进程,确保项目在后台运行并自动重启。首先安装pm2
:
sudo npm install -g pm2
然后启动你的项目:
pm2 start app.js --name your_project_name
你可以使用以下命令查看项目状态:
pm2 status
如果你使用的是UFW(Uncomplicated Firewall),可以设置防火墙规则以允许HTTP和HTTPS流量:
sudo ufw allow 'Nginx Full'
然后启用UFW:
sudo ufw enable
完成以上步骤后,你的Node.js项目应该已经在Ubuntu服务器上成功部署并运行了。