swagger訪問地址:http://xx.xx.xx.xx/tumor/swagger-ui.htmlhtml
界面能夠正常被訪問到,可是調用接口訪問的地址倒是:http://127.0.0.1:10001/xx.xxx.xx等,說明swagger被nginx代理以後從http請求頭中拿到的請求地址變成了nginx轉發帶過去的地址,並非真實的NGINX訪問地址java
location /tumor {
proxy_pass http://127.0.0.1:10001/;
}nginx
有以下兩種解決方案:
1.修改NGINX配置,重寫請求頭中的hostspring
在nginx配置中添加一行以下:app
location /tumor {ui
proxy_set_header Host $host:$server_port; #這一行就是來解決問題的,將NGINX接收到請求頭中的Host和端口繼續往下傳遞
proxy_pass http://127.0.0.1:10001/;
}spa
2.swagger自身也考慮到這種問題,所以能夠增長配置來解決此問題代理
方式1:在啓動腳本中添加,如:java -jar -Xms300m -Xmx300m -Dspringfox.documentation.swagger.v2.host=xxx.xxx.xxx.xxx/tumor /home/acct/app/tumorhospital/tumorhospital-1.0-SNAPSHOT.jar --spring.profiles.active=onlineserver
注意:不要在ip或者域名以前加http,swagger會自動加上的htm
方式2:在application.yml或者application.properties中加配置