在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多環境部署。