在Debian上实现Swagger多环境部署,可以按照以下步骤进行:
首先,确保你的Debian系统已经安装了以下软件:
sudo apt update
sudo apt install openjdk-11-jdk maven nginx
在你的项目中配置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();
}
}
使用Maven构建你的项目:
mvn clean package
构建完成后,你会在target
目录下找到生成的JAR文件。
编辑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;
}
}
将构建好的JAR文件部署到你的服务器上,并启动它:
java -jar your-application.jar
为了实现多环境部署,你可以使用Spring Boot的Profile功能。例如,创建不同的配置文件:
application-dev.yml
application-prod.yml
在每个配置文件中设置不同的环境变量和配置。
然后在启动应用时指定Profile:
java -jar your-application.jar --spring.profiles.active=dev
根据不同的环境,更新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/;
}
}
最后,重启Nginx以应用新的配置:
sudo systemctl restart nginx
通过以上步骤,你可以在Debian上实现Swagger多环境部署。