解决 Nginx 部署,无法访问 Swagger 文档的问题

本文档介绍了如何解决通过Nginx访问Swagger文档时遇到的问题。当直接添加/swagger-ui.html路由规则无效时,需要理解Swagger页面伴随的其他请求,并在Nginx配置中添加相应转发规则。解决方案是添加特定的location配置,包括设置proxy_set_header,并指定后端服务地址,以确保所有相关请求被正确转发。
摘要由CSDN通过智能技术生成

原文链接: https://www.changxuan.top/?p=1161

起因

昨天的时候,同事遇到了一个问题需要访问一个 nginx 部署的项目的 swagger 文档,但是在路由转发规则那里加上了 swagger-ui.html 之后仍不能访问。平时我们在内网开发,可以直接访问 后端项目ip:port/swagger-ui.html 就可以了。但是目前只有 nginx 所在服务器外网可以访问,所以外面的人想看接口文档只能通过 nginx 转发请求。

解决办法

nginx 的其它配置不需要改动,直接将下面的location 配置添加到你的配置中即可:

location ~* ^(/v2|/webjars|/swagger-resources|/swagger-ui.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://10.18.66.66:8600; # 后端服务地址
}

其实这也不是什么大问题,只要熟悉 nginx 基本配置都可以很快解决。但是我看网上好多博文都没说到关键的地方,大多数在讲应该如何配置 proxy_set_header主要的原因则是 swagger-ui.html 页面虽然看着只是一个页面,但是当你打开这个页面的时候还伴随着其它的请求。如果在 nginx 的配置中没有处理那些请求相应的转发规则,那么自然不会显示文档页面。

要构建一个基于上述技术栈的应用程序,涉及多个组件和技术,下面是一些关键点的简介: 1. **Spring Boot**: 是一个快速开发框架,简化了Java应用的配置和启动过程。 - 示例:用于创建简单的RESTful API服务[^4]。 2. **Spring Cloud**: 提供了一组工具和服务来扩展微服务架构。 - 功能包括服务发现、配置中心、API网关等[^5]。 3. **RabbitMQ**: 消息队列服务,支持异步通信和解耦。 - 在Spring Cloud中集成,可以用来实现消息驱动架构[^6]。 4. **Redis**: 缓存数据库,提高应用程序性能。 - 可以缓存热点数据或会话信息[^7]。 5. **Elasticsearch**: 分布式搜索和分析引擎,常用于全文检索。 - 支持复杂查询和实时数据分析[^8]。 6. **Xxl-sso**: 企业级权限管理系统,用于身份验证和授权[^9]。 7. **LCN**: 可能指的是Linux容器网络,Docker的基础组件。 - 管理容器间的网络连接[^10]。 8. **Nginx**: 反向代理服务器,优化HTTP请求和负载均衡。 - 与Spring Boot结合时,可能作为API Gateway[^11]。 9. **七牛云**: 对象存储服务,用于文件上传和管理。 - 存储静态资源[^12]。 10. **Swagger2**: 开源API文档生成工具。 - 用于自动生成API文档[^13]。 11. **MySQL**: 关系型数据库,存储业务数据。 - 数据持久化[^14]。 12. **Maven**: 项目管理和依赖管理工具。 - 用于构建和打包项目[^15]。 13. **GitLab**: 代码版本控制系统,用于版本控制和协作开发。 - 版本控制和CI/CD[^16]。 14. **Docker**: 虚拟化平台,便于部署和运行应用。 - 快速构建可移植的环境[^10]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值