Nginx と Tomcat で ssh オフロードを実行しようとしています。私のセットアップは次のとおりです。ブラウザ - (HTTPS) -> nginx -> (http/https) -> tomcat
x-forwarded-proto ヘッダーでリクエスト スキームを転送するように nginx をセットアップしました。
proxy_pass http://default_upstream;
add_header Set-Cookie "SRVGROUP=$group; path=/";
proxy_next_upstream error;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Host $http_host;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
proxy_set_header X-URI $uri;
proxy_set_header X-ARGS $args;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Scheme $scheme;
proxy_set_header Refer $http_refer;
proxy_redirect http:// $scheme://;
proxy_set_header Strict-Transport-Security "max-age=7200";
Tomcat では、常に http を取得する X-Forwarded-Proto ヘッダーを出力します。交換したら
proxy_set_header X-Forwarded-Proto $scheme;
と
proxy_set_header X-Forwarded-Proto https;
それはすべて動作します。しかし、すべてのページが https 経由で提供されているわけではないため、$scheme を使用したいと考えています。
解決策を探している、または誰かが以前に同じ問題を抱えていたかどうか。