解決 Nginx 部署,無法訪問 Swagger 文檔的問題


原文鏈接: https://www.changxuan.top/?p=1161

起因

昨天的時候,同事遇到了一個問題需要訪問一個 nginx 部署的項目的 swagger 文檔,但是在路由轉發規則那里加上了 swagger-ui.html 之后仍不能訪問。平時我們在內網開發,可以直接訪問 后端項目ip:port/swagger-ui.html 就可以了。但是目前只有 nginx 所在服務器外網可以訪問,所以外面的人想看接口文檔只能通過 nginx 轉發請求。

解決辦法

nginx 的其它配置不需要改動,直接將下面的location 配置添加到你的配置中即可:

location ~* ^(/v2|/webjars|/swagger-resources|/swagger-ui.html){
       proxy_set_header Host $host;
       proxy_set_header  X-Real-IP  $remote_addr;
       proxy_set_header X-Forwarded-For $remote_addr;
       #proxy_set_header Host $host:$server_port;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Forwarded-Port $server_port;
       proxy_pass http://10.18.66.66:8600; # 后端服務地址
}

其實這也不是什么大問題,只要熟悉 nginx 基本配置都可以很快解決。但是我看網上好多博文都沒說到關鍵的地方,大多數在講應該如何配置 proxy_set_header主要的原因則是 swagger-ui.html 頁面雖然看着只是一個頁面,但是當你打開這個頁面的時候還伴隨着其它的請求。如果在 nginx 的配置中沒有處理那些請求相應的轉發規則,那么自然不會顯示文檔頁面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM