debian

如何在Debian上实现Swagger多环境部署

小樊
41
2025-04-19 22:33:33
栏目: 智能运维

在Debian上实现Swagger多环境部署,可以按照以下步骤进行:

1. 安装必要的软件

首先,确保你的Debian系统已经安装了以下软件:

sudo apt update
sudo apt install openjdk-11-jdk maven nginx

2. 配置Swagger

在你的项目中配置Swagger。假设你使用的是Spring Boot项目,可以在pom.xml中添加Swagger依赖:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

然后,创建一个Swagger配置类:

import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo"))
                .paths(PathSelectors.any())
                .build();
    }
}

3. 构建项目

使用Maven构建你的项目:

mvn clean package

构建完成后,你会在target目录下找到生成的JAR文件。

4. 配置Nginx

编辑Nginx配置文件,通常位于/etc/nginx/sites-available/default,添加以下内容:

server {
    listen 80;
    server_name your_domain.com;

    location /api-docs {
        proxy_pass http://localhost:8080/v2/api-docs;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /swagger-ui.html {
        proxy_pass http://localhost:8080/swagger-ui.html;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /webjars/ {
        proxy_pass http://localhost:8080/webjars/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

5. 启动应用

将构建好的JAR文件部署到你的服务器上,并启动它:

java -jar your-application.jar

6. 配置多环境

为了实现多环境部署,你可以使用Spring Boot的Profile功能。例如,创建不同的配置文件:

在每个配置文件中设置不同的环境变量和配置。

然后在启动应用时指定Profile:

java -jar your-application.jar --spring.profiles.active=dev

7. 更新Nginx配置

根据不同的环境,更新Nginx配置文件中的代理路径。例如:

server {
    listen 80;
    server_name dev.your_domain.com;

    location /api-docs {
        proxy_pass http://localhost:8080/v2/api-docs;
    }

    location /swagger-ui.html {
        proxy_pass http://localhost:8080/swagger-ui.html;
    }

    location /webjars/ {
        proxy_pass http://localhost:8080/webjars/;
    }
}

对于生产环境:

server {
    listen 80;
    server_name prod.your_domain.com;

    location /api-docs {
        proxy_pass http://prod-server:8080/v2/api-docs;
    }

    location /swagger-ui.html {
        proxy_pass http://prod-server:8080/swagger-ui.html;
    }

    location /webjars/ {
        proxy_pass http://prod-server:8080/webjars/;
    }
}

8. 重启Nginx

最后,重启Nginx以应用新的配置:

sudo systemctl restart nginx

通过以上步骤,你可以在Debian上实现Swagger多环境部署。

0
看了该问题的人还看了