springdoc-openapi在nginx下的反向代理

1,047 阅读1分钟

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

image.png