通過nginx做代理,將請求發送給後端的tomcat服務器,並將請求的信息一併傳遞給後端服務器:
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;
由於後端程序在跳轉的時候採用自動跳轉(不再經過頁面發送請求),導致跳轉失敗,在瀏覽器開發工具中可以看到被限制的原因是瀏覽器使用的是https協議,但接收到http的返回,將其攔截。(只提供查看的方式,具體報錯沒有記錄)
最後確定原因是,開發同事在寫跳轉代碼拼裝路徑是,誤將https協議攔截,導致拼裝後的路徑爲http協議,被瀏覽器攔截。具體解決方法是在相關方法中添加:
<propertyname="redirectHttp10Compatible" value="false" />
排查心得:
1、可以通過開發工具的console欄看到具體的錯誤原因,很不錯。