在Linux系统上搭建RESTful API开发环境,核心在于准备好语言运行时、Web服务器与进程管理工具。不同发行版操作略有差异,但整体思路一致:先装依赖,再跑服务,最后做反向代理与守护。

一、选择并安装语言运行时
RESTful API可以用多种语言实现,Node.js和Python是常见选择。以Ubuntu为例,使用apt能快速安装Node.js。建议通过NodeSource仓库获取新版本,而非系统自带的老版本,避免语法不支持。
下面脚本添加了Node.js 18的源并安装。执行后可用node -v确认版本。若用Python,则安装python3与venv模块,便于隔离依赖。
# 安装Node.js 18 curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs # 验证 node -v npm -v
使用虚拟环境能有效防止包冲突。Python开发者可这样初始化:
sudo apt-get install -y python3 python3-venv python3 -m venv api_env source api_env/bin/activate pip install flask
二、编写并启动一个简单API服务
以Node.js的Express框架为例,先初始化项目并安装express,再写入口文件。以下代码创建一个返回JSON的GET接口,监听本地3000端口。
注意代码中未写死外部可访问地址,只绑127.0.0.1,后续由Nginx转发,这样更安全。生产环境切勿直接将Node进程暴露公网。
// app.js
const express = require('express');
const app = express();
app.get('/api/hello', (req, res) => {
res.json({ message: 'Hello RESTful' });
});
app.listen(3000, '127.0.0.1', () => {
console.log('API running on 127.0.0.1:3000');
});
启动方式是在项目目录运行node app.js。但终端关闭后进程会退出,因此需要systemd托管。
三、使用systemd守护API进程
systemd是Linux主流初始化系统,可定义服务单元文件,实现开机自启与崩溃重启。在/etc/systemd/system创建api.service,填写执行路径与用户。
配置里Restart=always保证进程挂掉立即拉起,WorkingDirectory指向代码目录。修改后执行daemon-reload并enable。
[Unit] Description=Simple RESTful API After=network.target [Service] User=www-data WorkingDirectory=/opt/api ExecStart=/usr/bin/node /opt/api/app.js Restart=always [Install] WantedBy=multi-user.target
相关命令如下,启动后可用systemctl status api查看日志:
sudo systemctl daemon-reload sudo systemctl enable api sudo systemctl start api sudo systemctl status api
四、配置Nginx反向代理与防火墙
浏览器或客户端通常访问80或443端口,由Nginx将请求转发到3000。这样既统一入口,也能处理静态文件与SSL。配置文件写在sites-available,再软链到sites-enabled。
同时用ufw只允许必要端口。默认拒绝全部,再开放22、80、443。API端口不需对外直通,降低风险。
server {
listen 80;
server_name api.ipipp.com;
location /api/ {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
防火墙命令示例:
sudo ufw default deny incoming sudo ufw allow 22 sudo ufw allow 80 sudo ufw allow 443 sudo ufw enable
五、跨域与日志排查
若前端域名不同,需在Nginx或应用层加CORS头。Nginx可加add_header Access-Control-Allow-Origin。日志方面,systemd的journalctl -u api可看报错,Nginx错误日志在/var/log/nginx/error.log。
整体完成后,访问http://api.ipipp.com/api/hello应返回JSON。按上述步骤,Linux即可稳定支撑RESTful API开发与部署,兼顾安全与可维护性。
LinuxRESTful_APINode.js修改时间:2026-08-08 05:03:21