ubuntu

如何在Ubuntu上部署Node.js RESTful API

小樊
39
2025-11-02 18:19:46
栏目: 编程语言

在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。

0
看了该问题的人还看了