在Ubuntu上部署Node.js RESTful API涉及几个步骤,包括安装Node.js、设置项目环境、配置服务器和启动API服务。以下是一个详细的指南:
1. 更新系统包
首先,确保你的Ubuntu系统是最新的。
sudo apt update
sudo apt upgrade -y
2. 安装Node.js和npm
你可以使用NodeSource来安装最新版本的Node.js和npm。
添加NodeSource仓库
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
这里我们使用Node.js 14.x版本,你可以根据需要选择其他版本。
安装Node.js和npm
sudo apt install -y nodejs
验证安装
node -v
npm -v
3. 创建项目目录
在你的服务器上创建一个新的目录来存放你的Node.js项目。
mkdir my-rest-api
cd my-rest-api
4. 初始化Node.js项目
使用npm初始化一个新的Node.js项目。
npm init -y
5. 安装必要的依赖
安装Express和其他你需要的中间件。
npm install express body-parser cors
6. 创建RESTful API
创建一个简单的Express应用来处理RESTful请求。
创建app.js文件
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const app = express();
const port = process.env.PORT || 3000;
app.use(bodyParser.json());
app.use(cors());
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
7. 配置Nginx作为反向代理
Nginx可以用来处理静态文件和作为反向代理来转发请求到你的Node.js应用。
安装Nginx
sudo apt install nginx -y
配置Nginx
编辑Nginx配置文件以设置反向代理。
sudo nano /etc/nginx/sites-available/my-rest-api
添加以下内容:
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;
}
}
启用配置
创建一个符号链接以启用该配置。
sudo ln -s /etc/nginx/sites-available/my-rest-api /etc/nginx/sites-enabled
测试Nginx配置
sudo nginx -t
重启Nginx
sudo systemctl restart nginx
8. 启动Node.js应用
你可以使用pm2来管理你的Node.js应用,使其在后台运行并自动重启。
安装pm2
sudo npm install pm2 -g
启动应用
pm2 start app.js --name my-rest-api
查看应用状态
pm2 status
9. 配置防火墙
确保你的防火墙允许HTTP和HTTPS流量。
sudo ufw allow 'Nginx Full'
10. 访问你的API
现在你可以通过浏览器或API客户端访问你的RESTful API了。
http://your_server_ip_or_domain
通过以上步骤,你已经成功在Ubuntu上部署了一个Node.js RESTful API。
以上就是关于“如何在Ubuntu上部署Node.js RESTful API”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm