多種方式解決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)中進行配置