SWAGGER被NGINX代理以後默認請求的地址不是NGINX服務器地址,而是轉發地址解決辦法

現象:

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

nginx配置:

        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中加配置

相關文章
相關標籤/搜索