nginx访问不到knife4j

在开发环境时knife4j文档一切正常访问,可是打包放到服务器上通过nginx转发后(服务器部署了多个转发),一直访问不到knife4j文档,这个时候需要修改一下nginx的配置

	#api 的前缀根据实际情况修改
    location /api/ {
        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_pass http://127.0.0.1:8081/;#修改为后端服务的地址
    }
    location ~* ^(/v2|/webjars|/swagger-resources|/doc.html){
       proxy_set_header Host $host;
       proxy_set_header  X-Real-IP  $remote_addr;
       proxy_set_header X-Forwarded-For $remote_addr;
       #proxy_set_header Host $host:$server_port;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Forwarded-Port $server_port;
       proxy_pass http://127.0.0.1:8081; #修改为后端服务的地址
       proxy_set_header X-Forwarded-Prefix /api; #api 的前缀根据实际情况修改
    }

一般情况修改为以上配置就能正常访问knife4j的文档了,也能正常调试使用了。
访问路径为:http://你的服务器地址/doc.html

如果还遇到服务器图片文件访问nginx报404

则需要注释掉一下配置
注释掉

### 解决 Knife4j 文档请求异常 500 错误 当遇到 Knife4j 文档请求返回 500 内部服务器错误时,可能的原因和对应的解决方案如下: #### 1. 版本兼容性问题 如果使用的 Spring Boot 或其他框架版本较高,可能会存在不兼容的情况。尝试降低 Spring Boot 的版本号可以解决问题[^2]。 #### 2. 启动类注解配置不当 对于某些项目结构,在启动类上添加 `@EnableSwagger2WebMvc` 注解有助于解决此问题。不过需要注意的是,在 Knife4j 3.x 及以上版本中已经支持自动配置,通常不需要再手动添加这个注解[^3]。 ```java // 对于低于3.x版本的Knife4j, 需要显式添加该注解 @SpringBootApplication @EnableSwagger2WebMvc // 如果是低版本则保留这行代码 public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` #### 3. Gateway代理设置不合理 如果是基于微服务架构的应用程序,并且通过 API Gateway 访问 Swagger 资源,则应确保网关正确转发 `/v2/api-docs` 请求至目标服务实例。可以通过浏览器开发者工具中的网络面板来检查具体的 HTTP 响应状态码与消息体内容,从而定位具体原因并调整路由规则或路径映射关系[^4]。 #### 4. 缺少必要的初始化类 创建一个继承自 `SpringBootServletInitializer` 并重写其方法的类可以帮助完成一些额外的初始化工作,进而修复潜在的问题[^5]。 ```java public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(YourApplicationClass.class); } } ``` 上述措施能够有效应对大部分情况下发生的 Knife4j 文档请求异常 500 错误现象。然而实际开发过程中还可能存在更多复杂场景下的特殊情况,请根据具体情况灵活运用这些技巧进行排查处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值