在Ubuntu上部署Node.js的实时应用可以通过以下步骤完成。这里我们假设你已经有一个Node.js应用,并且希望将其部署到Ubuntu服务器上。
首先,确保你有一个运行中的Ubuntu服务器。你可以通过SSH访问它。
在开始之前,更新你的系统包列表和已安装的软件包:
sudo apt update
sudo apt upgrade -y
你可以使用NodeSource或nvm(Node Version Manager)来安装Node.js。这里我们使用NodeSource:
添加NodeSource仓库:
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
这里我们安装Node.js 14.x版本,你可以根据需要更改版本号。
安装Node.js:
sudo apt-get install -y nodejs
验证安装:
node -v
npm -v
PM2是一个进程管理器,可以帮助你管理和保持Node.js应用的在线状态。
安装PM2:
sudo npm install pm2 -g
启动你的Node.js应用:
pm2 start app.js --name my-app
这里app.js是你的Node.js应用的入口文件,my-app是应用的名称。
查看应用状态:
pm2 status
Nginx可以用来处理HTTP请求并将它们转发到你的Node.js应用。
安装Nginx:
sudo apt install nginx -y
配置Nginx: 编辑Nginx配置文件:
sudo nano /etc/nginx/sites-available/my-app
添加以下内容:
server {
listen 80;
server_name your-domain.com;
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;
}
}
将your-domain.com替换为你的域名,3000替换为你的Node.js应用监听的端口。
启用配置: 创建一个符号链接以启用该配置:
sudo ln -s /etc/nginx/sites-available/my-app /etc/nginx/sites-enabled
测试Nginx配置并重启服务:
sudo nginx -t
sudo systemctl restart nginx
确保你的防火墙允许HTTP和HTTPS流量。
允许HTTP和HTTPS流量:
sudo ufw allow 'Nginx Full'
重新加载防火墙规则:
sudo ufw reload
使用PM2启动你的应用,并设置开机自启动:
设置PM2开机自启动:
pm2 startup
按照提示操作。
保存当前PM2进程列表:
pm2 save
现在,你的Node.js实时应用应该已经在Ubuntu服务器上成功部署并运行了。你可以通过浏览器访问你的域名来查看应用。