host vs nginx server_name


問題現象:使用charles轉發,將前端請求(ip:port)轉發到預覽機環境(域名),接口出現302;測試過程,轉發到測試環境機器,未出現過此類情況

解決:rewrite host為對應域名,即可訪問

原因:前端頁面請求測試環境IP:port,轉發后,未改變request header,host仍為IP:port,預覽機機器nginx配置文件指定server_name為域名形式,無法匹配,則使用默認配置,處理為302

以上解決方法為RD提供,事后想起,梳理之

host字段:若未設置,會參考request自動處理;若沒有則會報錯400

參考:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host

 nginx處理機制:

根據port區分后校驗server_name 與host字段,若匹配則進入對應分支;若不匹配則進入默認分支(default標志或listen第一個分支)

參考:http://nginx.org/en/docs/http/request_processing.html

 


免責聲明!

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



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