問題現象:使用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