温馨提示×

Linux部署Swagger难不难

小樊
48
2026-08-21 03:25:52
栏目: 智能运维

在 Linux 上部署 Swagger 其实不算难,难度主要取决于你用的是哪种“Swagger”以及你的项目类型。下面我按常见场景给你拆解一下,看完你基本就能判断自己该怎么做。


一、先澄清一个概念(很重要)

很多人说的「部署 Swagger」其实是指下面几种之一:

场景 实际含义
Swagger UI 用来查看、调试接口
Swagger Editor 在线编辑 OpenAPI 文档
Swagger + 后端项目 把接口文档自动生成并展示
Swagger 作为静态文档 纯 HTML 文档服务

最常见的是:Swagger UI + 后端接口


二、最简单的情况(✅ 推荐,难度:低)

✅ 只部署 Swagger UI(静态页面)

适合:

  • 已有 OpenAPI 文档(json / yaml)
  • 只想在 Linux 上看接口文档

步骤(5 分钟搞定)

# 下载 Swagger UI
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.17.14.zip
unzip v5.17.14.zip
cd swagger-ui-5.17.14/dist

修改 swagger-initializer.js

url: "http://你的IP或域名/api-docs.yaml"

然后用 Nginx / 任意 Web 服务:

python3 -m http.server 8080

浏览器访问:

http://服务器IP:8080

难度:★☆☆☆☆


三、后端项目自动生成 Swagger(最常见)

1️⃣ Java(Spring Boot)✅ 最成熟

难度:低

<dependency>
  <groupId>org.springdoc</groupId>
  <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
  <version>2.3.0</version>
</dependency>

访问:

http://IP:端口/swagger-ui.html

几乎零配置


2️⃣ Node.js(Express / NestJS)

难度:中

npm install swagger-ui-express swagger-jsdoc
const swaggerJsdoc = require('swagger-jsdoc');
const swaggerUi = require('swagger-ui-express');

const spec = swaggerJsdoc({ /* 配置 */ });
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(spec));

难度:★★☆☆☆


3️⃣ Python(FastAPI / Flask)

FastAPI(✅ 最简单)

from fastapi import FastAPI
app = FastAPI()

# 自动生成

访问:

http://IP:8000/docs

难度:★☆☆☆☆

Flask(稍麻烦)

pip install flask-swagger-ui

难度:★★☆☆☆


四、Docker 部署 Swagger(推荐)

难度:低

docker run -p 8080:8080 \
  -e SWAGGER_JSON=/api/openapi.json \
  -v $(pwd):/usr/share/nginx/html \
  swaggerapi/swagger-ui

适合生产环境


五、常见坑(提前避坑)

问题 原因
页面空白 JSON 跨域 / 路径错误
接口调不通 后端未放行 CORS
访问 404 Nginx 没配置静态目录
文档不更新 忘了重新生成 JSON

六、总结一句话

Linux 上部署 Swagger 不难,难点不在 Linux,而在接口文档怎么生成。

难度参考

  • Spring Boot / FastAPI:⭐️
  • Node / Flask:⭐️⭐️
  • 纯 Swagger UI:⭐️
  • 手写 OpenAPI:⭐️⭐️⭐️

如果你愿意,可以告诉我:

  • 你用的语言 / 框架
  • 是只想看文档,还是给前端用
  • 是否用 Docker / Nginx

我可以直接给你 一套可复制的完整部署方案

0