客戶端請求的https跳轉(zhuǎn)為http,請求超時的原因是什么?
nginx配置ssl https代理后端tomcat http請求時,會自動跳回http并報錯:400 Bad Request The plain HTTP request was sent to HTTPS port
解決方案:添加參數(shù)
1、proxy_redirect參數(shù);
這個參數(shù)主要用來改從被代理服務(wù)器傳來的應(yīng)答頭中的"Location"和"Refresh"字段。
在此處配置為proxy_redirect http:// $scheme://;
作用是將從tomcat中返回的http修改為https。
2、port_in_redirect參數(shù);
這個參數(shù)的作用是啟用或禁用在由nginx發(fā)布的絕對重定向中指定端口。
此處配置為port_in_redirect on;
作用是在nginx反向代理跳轉(zhuǎn)到tomcat時將跳轉(zhuǎn)到的端口替換為nginx監(jiān)聽的端口。
3、proxy_set_header 參數(shù)
此處配置為 proxy_set_header Host $host:$server_port;
此處設(shè)置為proxy_set_header Host $host:$server_port;的作用是將請求的報文的頭部的客戶端的ip更改為當(dāng)前作為反向代理的nginx的監(jiān)聽的ip及端口,這樣后端的tomcat處理完請求時返回給nginx,再由nginx代理將結(jié)果返回給客戶端。不然,后端服務(wù)處理完請求會直接返回到客戶端,這樣會導(dǎo)致客戶端請求的https跳轉(zhuǎn)為http,以及請求超時。
版權(quán)保護: 本文「客戶端請求的https跳轉(zhuǎn)為http,請求超時的原因是什么?」由 云主機配置專家 原創(chuàng),轉(zhuǎn)載請保留鏈接: http://www.iqcg.cn/docs/proxyip/1749.html