温馨提示×

Swagger在Linux如何迁移

小樊
36
2026-07-10 14:02:13
栏目: 智能运维

“Swagger 在 Linux 如何迁移”这个问题通常取决于你指的是哪一种 Swagger 使用方式。下面我按最常见的几种场景给你说明,你可以对号入座;如果和你的实际情况不一致,可以再补充。


一、迁移 Swagger 文档(最常见)

场景

你原来在 Windows / 另一台 Linux 服务器 上有一套 Swagger API 文档,现在要迁移到新的 Linux 服务器。

常见形式

  • Swagger UI(HTML + JS)
  • swagger.json / swagger.yaml
  • Spring Boot 集成的 Swagger(如 springfox、springdoc-openapi)

迁移步骤(通用)

1️⃣ 在原服务器导出 Swagger 文件

# 如果是 JSON
curl http://localhost:8080/v2/api-docs > swagger.json

# 如果是 YAML(springdoc)
curl http://localhost:8080/v3/api-docs.yaml > swagger.yaml

2️⃣ 拷贝到新 Linux 服务器

scp swagger.json user@new-server:/opt/swagger/

3️⃣ 在新服务器部署 Swagger UI

cd /opt/swagger
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.17.14.zip
unzip v5.17.14.zip

修改:

swagger-ui/dist/swagger-initializer.js
url: "http://新服务器IP/swagger.json"

4️⃣ 用 Nginx 提供访问

server {
    listen 80;
    server_name swagger.xxx.com;

    location / {
        root /opt/swagger/swagger-ui/dist;
        index index.html;
    }
}

✅ 迁移完成


二、迁移 Spring Boot + Swagger(后端项目)

场景

你要把 Spring Boot 项目连同 Swagger 一起迁移到 Linux

步骤

1️⃣ 打包项目

mvn clean package -DskipTests

2️⃣ 上传 jar 包

scp target/app.jar user@linux:/opt/app/

3️⃣ 启动服务

nohup java -jar app.jar > app.log 2>&1 &

4️⃣ 访问 Swagger

  • springfox:
http://IP:8080/swagger-ui.html
  • springdoc:
http://IP:8080/swagger-ui/index.html

✅ Swagger 随项目一起迁移


三、迁移 Swagger Editor / Swagger UI(Docker)

原服务器使用 Docker

docker ps

迁移方式

docker pull swaggerapi/swagger-ui
docker run -d -p 8080:8080 \
  -e SWAGGER_JSON=/tmp/swagger.json \
  -v /opt/swagger:/tmp \
  swaggerapi/swagger-ui

四、数据库 + Swagger(较少见)

如果 Swagger 信息来自数据库(如自定义系统):

  • 迁移数据库
  • 修改配置文件中的数据库连接
  • 重启服务

五、迁移时常见问题

❌ 1. 404 访问不到 Swagger

✅ 检查:

  • 是否放行端口
  • springfox 是否被 Spring Boot 3 弃用(建议换 springdoc-openapi

❌ 2. YAML / JSON 访问 403

✅ 检查:

  • 文件权限
chmod 644 swagger.json

❌ 3. 跨域问题

✅ 后端加:

@CrossOrigin

六、快速判断你属于哪种迁移

情况 建议
只有 API 文档 迁移 swagger.json
Spring Boot 项目 迁移 jar + 配置文件
前端展示 Swagger 迁移 Swagger UI
Docker 部署 迁移镜像 + 挂载

✅ 如果你愿意

你可以直接告诉我:

  1. Swagger 版本(2.x / 3.x / OpenAPI)
  2. 是否 Spring Boot
  3. 是否 Docker
  4. 迁移到同服务器还是新服务器

我可以给你精确到命令级别的迁移方案

0