1

H2データベースWebコンソールへのアクセスを許可する前に、nginxを使用して基本認証を適用しようとしています。このコンソールはhttps:// localhost:8084で実行されています

私のnginx.confには、次のものがあります。

 location /h2 {
   auth_basic "Restricted";
   auth_basic_user_file htpasswd;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header Host $host;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto https;
   proxy_pass https://localhost:8084/;
 }

私がやりたいのは、H2のWebサーバーへの/h2のプロキシ要求です。この構成は最初のリクエストで機能しますが、H2サーバーはすぐに「/login.jsp」のHTTPリダイレクトを送信します。これは、「/ h2/login.jsp」ではなく「/login.jsp」としてブラウザに送信されます。これは、ブラウザがページをリクエストすると、場所「/h2」のURLのみがH2ウェブサーバーに渡されるため、リクエストが失敗することを意味します。

H2 Webサーバーから返されるリダイレクトに「/h2」を追加するにはどうすればよいですか?私は次のことを試しました:

proxy_redirect https://localhost:8084/ https://$host/h2;

しかし、それは何もしませんでした。

4

1 に答える 1

1

これはnginx構成の問題のようです。nginx.conflocation /h2/ではなく、(末尾にスラッシュを付けて)試してください。location /h2そして、に接続しhttp://localhost/h2/ます。H2コンソールツールは絶対URLを使用しないため、リバースプロキシ設定は必要ありません(リダイレクトは「/login.jsp」ではなく「login.jsp」に送信されます)。問題は、http:// localhost:/ h2が「ファイル名」であるのに対し、http:// localhost:/h2/は「ディレクトリ」であるということです。

于 2010-11-19T13:32:54.797 に答える