springdoc-openapi在nginx下的反向代理
场景描述
基于SpringBoot下开发的接口,简单使用springdoc-openapi作为接口描述工具,对外提供接口描述及接口测试入口。由于需要部署到外网,并提供域名+SSL的访问方式,于是在部署时打算用已有的域名绑定在云上的服务器,并在nginx中将SSL证书配置。缓慢配置过后,发现服务可用,但是接口文档中的请求的路径出现了问题(还是本地的测试地址),好家伙现在只能看,不能测。这不完犊子了。接口测试页面的URL有以下问题
- 域名不对:为localhost
- 端口不对:为8080
- 请求协议不对:还是http
解决措施
- nginx配置追加如下配置信息(不包含SSL,仅为针对【springdoc-openapi在nginx下的反向代理的配置】)
location / {
proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/;
}
- Spring Boot配置文件中追加以下配置
server:
forward-headers-strategy: native
- 官方文档截图,地址