解决 Nginx 部署,无法访问 Swagger 文档的问题
Posted 壹言
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决 Nginx 部署,无法访问 Swagger 文档的问题相关的知识,希望对你有一定的参考价值。
原文链接: 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
的配置中没有处理那些请求相应的转发规则,那么自然不会显示文档页面。
以上是关于解决 Nginx 部署,无法访问 Swagger 文档的问题的主要内容,如果未能解决你的问题,请参考以下文章
Asp.Net Core Swagger 页面适配 Nginx 二级目录 | 完美解决方案
Asp.Net Core Swagger 页面适配 Nginx 二级目录 | 完美解决方案 #yyds干货盘点#
spring boot swagger ui使用 nginx 部署后无法使用问题