今日、新しいプロジェクトが開始されましたが、問題が発生しました。会社は f5 転送と https プロトコルを使用していました。しかし、私たちのプロジェクトでは、request.getScheme() が代わりに http を取得しました。運用と保守は、それが問題であると言いました。私たちのコード..、Tomcatのサーブをチェックしました。この問題に遭遇した人はいますか?どうやって解決すればいいでしょうか?
https は通常、リバース プロキシ (F5 など) によって実装され (つまり、SSL 証明書はリバース プロキシ上に構成されます)、Tomcat 自体は http プロトコルを使用します。
リバースプロキシはレイヤー7転送を使用するため、request.getRemoteAddr()不可能得到用户真实IP地址,所以通常在反向代理那边配X-Forwarded-For,Tomcat这边用request.getHeader("X-Forwarded-For")拿到用户真实IP地址)。同样道理,request.getScheme()也不可能得到用户真实的协议,通常会在反向代理那边配X-Forwarded-Proto这种Header,Tomcat这边用request.getHeader("X-Forwarded-Proto")ユーザーがhttpsステータスであるかどうかを判断します。
request.getRemoteAddr()
X-Forwarded-For
request.getHeader("X-Forwarded-For")
request.getScheme()
X-Forwarded-Proto
request.getHeader("X-Forwarded-Proto")
あなたの問題が何なのかわかりません。 。 Tomcat に証明書がない場合に https を使用するにはどうすればよいですか? 私は f5 を使用したことがありません。同様の nginx は SSL をアンインストールできます。つまり、アプリケーションは https を認識する必要がありません。
https は通常、リバース プロキシ (F5 など) によって実装され (つまり、SSL 証明書はリバース プロキシ上に構成されます)、Tomcat 自体は http プロトコルを使用します。
リバースプロキシはレイヤー7転送を使用するため、
request.getRemoteAddr()
不可能得到用户真实IP地址,所以通常在反向代理那边配X-Forwarded-For
,Tomcat这边用request.getHeader("X-Forwarded-For")
拿到用户真实IP地址)。同样道理,request.getScheme()
也不可能得到用户真实的协议,通常会在反向代理那边配X-Forwarded-Proto
这种Header,Tomcat这边用request.getHeader("X-Forwarded-Proto")
ユーザーがhttpsステータスであるかどうかを判断します。あなたの問題が何なのかわかりません。 。
Tomcat に証明書がない場合に https を使用するにはどうすればよいですか?
私は f5 を使用したことがありません。同様の nginx は SSL をアンインストールできます。つまり、アプリケーションは https を認識する必要がありません。