在CentOS中部署Node.js RESTful API涉及几个步骤,包括安装Node.js、设置环境、编写API代码、测试API以及配置Nginx作为反向代理。以下是一个详细的步骤指南:
首先,你需要在CentOS上安装Node.js。你可以使用NodeSource的二进制分发库来安装特定版本的Node.js。
# 添加NodeSource库
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
# 安装Node.js和npm
sudo yum install -y nodejs
确保你的系统已经安装了必要的构建工具和依赖项。
sudo yum groupinstall -y "Development Tools"
sudo yum install -y git
创建一个新的目录来存放你的项目,并进入该目录。
mkdir my-api
cd my-api
初始化一个新的Node.js项目。
npm init -y
安装Express框架和其他必要的依赖项。
npm install express body-parser cors
创建一个简单的Express应用。
// 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(cors());
app.use(bodyParser.json());
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
在本地测试你的API以确保它正常工作。
node app.js
打开浏览器并访问 http://localhost:3000,你应该看到 “Hello World!” 的消息。
安装Nginx。
sudo yum install -y nginx
启动并启用Nginx服务。
sudo systemctl start nginx
sudo systemctl enable nginx
配置Nginx以将请求转发到你的Node.js应用。
编辑Nginx配置文件 /etc/nginx/nginx.conf 或创建一个新的配置文件 /etc/nginx/conf.d/my-api.conf。
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;
}
}
重新加载Nginx配置以应用更改。
sudo systemctl reload nginx
确保你的防火墙允许HTTP和HTTPS流量。
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
你可以使用PM2来管理你的Node.js应用,确保它在后台运行并且自动重启。
安装PM2。
sudo npm install -g pm2
使用PM2启动你的应用。
pm2 start app.js --name my-api
保存PM2配置以便在系统重启后自动启动。
pm2 save
现在,你的Node.js RESTful API应该已经成功部署在CentOS上,并且可以通过Nginx访问。