多种方式解决spring boot swagger ui使用 nginx 部署后无法使用问题

spring boot 使用 swagger ui 做接口文档,很是方便

本地测试都没有问题

将一个Spring boot工程部署到生产环境, 配置nginx

server {
listen 80;
server_name quanke.name;
location / {
proxy_pass http://127.0.0.1:3101;
}
}

浏览器中访问: quanke.name, 选中某一接口点击try it out,显示:

No Content。

Request URL:

http://127.0.0.1:3101/test

而不是

http://quanke.name/test

通过朋友+搜索知道有两种方法解决此问题:

第一种:修改nginx配置文件


server {
listen 80;
server_name quanke.name;
location / {
proxy_pass http://127.0.0.1:3101;
}
}

修改为:

server {
listen 80;
server_name quanke.name;
location / {
proxy_pass http://127.0.0.1:3101;
proxy_set_header Host $host; # 指定host
}
}

第二种:启动工程时显式添加属性

Java 启动的时候指定swagger.v2.host

-Dspringfox.documentation.swagger.v2.host=quanke.name

启动命令实例:

java -jar -Dspringfox.documentation.swagger.v2.host=quanke.name /data/app/quanke/api.jar

或者在配置文件(application.properties)中进行配置

如何有任何问题请关注微信公众号给我留言

全科的公众号