温馨提示×

Linux Swagger怎么部署

小樊
40
2026-08-05 20:57:03
栏目: 智能运维

在 Linux 上部署 Swagger(通常指 Swagger UI / Swagger Editor / Swagger API 文档),常见有 3 种主流方式。下面按从简单到完整给你讲清楚,并附完整示例。


一、最常见:部署 Swagger UI(展示已有接口文档)

适用于:
✅ 你已经有 swagger.json / openapi.yaml
✅ 只想在 Linux 上查看 / 共享接口文档


方式 1:直接用 Nginx 部署 Swagger UI(推荐 ✅)

1️⃣ 安装 Nginx

# Ubuntu / Debian
sudo apt update
sudo apt install nginx -y

# CentOS
sudo yum install nginx -y

2️⃣ 下载 Swagger UI

cd /usr/share/nginx/html
sudo git clone https://github.com/swagger-api/swagger-ui.git

或直接下载:

wget https://github.com/swagger-api/swagger-ui/archive/refs/heads/master.zip
unzip master.zip
mv swagger-ui-master swagger-ui

目录结构:

/usr/share/nginx/html/swagger-ui/dist

3️⃣ 配置 Swagger UI 指向你的接口文档

编辑:

sudo vim /usr/share/nginx/html/swagger-ui/dist/swagger-initializer.js

修改:

url: "http://your-server-ip:port/v3/api-docs"

或者用本地文件:

url: "/swagger.json"

4️⃣ 配置 Nginx

sudo vim /etc/nginx/sites-enabled/default

示例:

server {
    listen 80;
    server_name localhost;

    location / {
        root /usr/share/nginx/html/swagger-ui/dist;
        index index.html;
    }
}

5️⃣ 启动 Nginx

sudo nginx -t
sudo systemctl restart nginx

访问:

http://服务器IP

✅ 完成!


二、Spring Boot 项目中集成 Swagger(最常用)

如果你是 Java / Spring Boot 项目:


1️⃣ Maven 依赖

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

2️⃣ 启动项目

访问:

http://服务器IP:8080/swagger-ui.html

或:

http://服务器IP:8080/swagger-ui/index.html

✅ 无需额外部署


三、Docker 方式部署 Swagger(最快 ⚡)


1️⃣ 安装 Docker

sudo apt install docker.io -y
sudo systemctl start docker

2️⃣ 启动 Swagger UI

docker run -d -p 8080:8080 \
  -e SWAGGER_JSON=/app/swagger.json \
  -v /path/to/swagger.json:/app/swagger.json \
  swaggerapi/swagger-ui

访问:

http://服务器IP:8080

四、Swagger Editor(在线编辑接口文档)

docker run -d -p 8081:8080 swaggerapi/swagger-editor

访问:

http://服务器IP:8081

五、常见问题

❓ 1. Swagger 和 OpenAPI 区别?

名称 说明
Swagger 老品牌
OpenAPI 新标准
Swagger UI 展示工具

✅ 现在推荐 OpenAPI 3.x


❓ 2. 接口访问 404?

检查:

  • JSON 是否能被浏览器直接访问
  • 是否被 Spring Security 拦截
  • Nginx 静态路径是否正确

❓ 3. 生产环境建议

✅ 内网访问
✅ 加认证(Nginx Basic Auth / Token)
✅ 不要暴露所有接口


六、我可以继续帮你

你可以直接告诉我:

1️⃣ 是 Spring Boot / Node / Python / Go
2️⃣ 想 展示已有接口 还是 写接口文档
3️⃣ 是否用 Docker / 云服务器

我可以给你 完全贴合你项目的部署方案

0