さて、基本的に私がやりたいことは、nginx で https ページを提供し、http を使用して Jetty にリダイレクトするためのリバース プロキシを設定することです。問題は、サーブレットが実際には https を必要とし、http ページに送信されたことがわかると https アドレスにリダイレクトすることです。
以前は、以下を追加することですべてを Jetty 7 で実行していました。
<Set name="forwarded">true</Set>
SelectChannelConnector の jetty.xml に追加しましたが、Jetty 9 にアップグレードすることにしたので、この構成に代わるものが見つからないようです。Jetty 7 では問題なく動作していたので、nginx の設定に問題はないと確信しています。
ここに、私が持っている nginx 設定の一部を記載します。これにより、私がそこに持っているものが明確になります。
location / {
proxy_pass http://127.0.0.1:8080;
include /etc/nginx/proxy_params;
}
私の proxy_params ファイルは次のとおりです:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
答え1
これはかなり簡単に実現できそうです。 の次の部分のコメントを解除するだけです/etc/jetty.xml
。
<!-- Uncomment to enable handling of X-Forwarded- style headers
<Call name="addCustomizer">
<Arg><New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg>
</Call>
-->
つまり、私が盲目だったか、Jetty 9 の古いバージョンでは、このような明白な場所にこのオプションがなかったかのどちらかです。