2010-11-18 15 views
1

H2データベースWebコンソールへのアクセスを許可する前に基本認証を実施するためにnginxを使用しようとしています。このコンソールは、私のnginx.confでhttps://localhost:8084nginx HttpProxyModule設定ヘルプ

上で実行されて、私が持っている:私はそれがやりたいことのために/ H2のWebサーバにh2をプロキシ要求である

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サーバーは直ちに "/login.jsp"のHTTPリダイレクトを送信します。これはブラウザに "/login.jsp"として送信され、 "/h2/login.jsp"ではありません。これは、ブラウザがページをリクエストしたときに、場所「/ h2」のURLだけがH2ウェブサーバーに渡されるため、要求が失敗することを意味します。

H2ウェブサーバーから返されたリダイレクトに「/ h2」を追加するにはどうすればよいですか?私は以下を試した:

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

しかし、何もしなかった。

答えて

1

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