Ubuntu上Swagger常见问题及解决方法
/etc/nginx/sites-available/default)中的root指令是否指向正确的Swagger文件目录(如/var/www/html/swagger-ui),并确认Nginx启动用户(默认www-data)对该目录有读取权限(可通过chown -R www-data:www-data /var/www/html/swagger-ui修改权限)。ifconfig确认网卡启用状态)、关闭不必要的网卡(如sudo ifconfig eth1 down),并通过sudo ufw allow 8080(或对应端口)开放防火墙端口。pom.xml中排除冲突的Jakarta EE依赖,添加旧版Servlet API依赖:<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
```。
java -version检查),并参考Swagger官方文档选择兼容的Spring Boot版本(如Spring Boot 2.7.x适配Swagger 3.x)。swagger.yaml或swagger.json)中的basePath(如/api)与实际API路径一致,且配置文件放置在项目正确位置(如src/main/resources)。/etc/nginx/sites-available/default),添加或修改location块以正确转发请求:location /api-docs {
proxy_pass http://localhost:3000; # 假设Swagger UI运行在3000端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
```。
-Xmx2048m)和下限(如-Xms1024m),选择G1GC垃圾回收器(-XX:+UseG1GC)。page=1&size=10)和过滤(如?status=active),引入Redis缓存热点数据。springfox.documentation.enabled=false),避免敏感API信息泄露。sudo ufw allow from 192.168.1.0/24 to any port 8080,仅允许内网IP访问),实施强密码策略(如修改默认管理员密码),禁用root账户登录(使用sudo passwd -l root锁定),并定期更新系统和软件包(sudo apt update && sudo apt upgrade)。-v $(pwd)/swagger.json:/app/swagger.json)和环境变量(如-e SWAGGER_JSON=/app/swagger.json),并通过docker ps检查容器运行状态。npm install express swagger-ui-express yamljs),并正确加载Swagger文件(如const swaggerDocument = YAML.load('./swagger.yaml'))。