启用生产环境配置
java
@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
.info(new Info().title("API文档")
.description("生产环境API文档")
.version("v1.0.0"));
}
使用CDN托管Swagger UI资源
html
<link href="https://cdn.jsdelivr.net/npm/swagger-ui-dist@3/swagger-ui.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/swagger-ui-dist@3/swagger-ui-bundle.js"></script>
启用HTTP压缩
nginx
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
限制扫描范围
java
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.your.package"))
.paths(PathSelectors.any())
.build();
}
缓存生成的文档
java
@Bean
public CachingOperationNameGenerator operationNameGenerator() {
return new CachingOperationNameGenerator();
}
减少不必要的注解
@ApiModelProperty
等注解调整JVM参数
-Xms512m -Xmx1024m
使用Nginx反向代理
nginx
location /swagger-ui/ {
alias /path/to/swagger-ui/;
expires 30d;
access_log off;
}
启用HTTP/2
nginx
listen 443 ssl http2;
性能监控
定期清理
考虑替代方案
nginx
location /swagger-ui/ {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
allow 192.168.1.0/24;
deny all;
}
通过以上优化措施,可以显著提升Linux环境下Swagger的性能表现,特别是在高并发访问场景下。