本文共 701 字,大约阅读时间需要 2 分钟。
最近遇到了一个问题,同事在尝试访问一个通过Nginx部署的项目的Swagger文档时遇到了困难。问题的起因是在Nginx的路由转发规则中添加了swagger-ui.html后,仍然无法访问。通常情况下,在内网开发中,我们可以直接通过后端项目的IP地址和端口访问Swagger文档文件swagger-ui.html,但现在的情况不同——只有Nginx所在服务器的外网可以访问,因此外部人员只能通过Nginx转发请求来查看接口文档。
Nginx的其他配置无需修改,直接将以下配置添加到你的Nginx配置中即可:
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_pass http://127.0.0.1:8600; # 后端服务地址} 实际上,这并不是一个特别复杂的问题,只要熟悉Nginx的基本配置,就能很快解决。然而,许多博客文章都没有提到关键点,主要集中在讨论proxy_set_header的配置。真正的关键在于swagger-ui.html页面虽然看起来只是一个页面,但当你打开这个页面时,还会伴随其他请求。如果在Nginx的配置中没有正确处理这些请求的转发规则,那么你自然无法看到文档页面。
转载地址:http://ajqfk.baihongyu.com/