パス「be」でWebアプリケーションを実行しているTomcat 6があります。ログイン処理にはSpringセキュリティを利用しています。ログインURLは/console/login
、ログイン後のリダイレクト先/console/customer
です。URLには https を使用し、login
URL には http を使用しcustomer
ます。Spring構成ファイルでサーブレットパスを指定しません。/be/console/login
すべて正常に動作し、正しいリダイレクト (へ)にアクセスした後、/be/console/customer
受信されました。
今、私はプロキシを持ちたいです。ポート 80 からポート 9080 に転送するように、 Nginx を http に転送https://localhost
するように構成しました。https://<someip>:9443
問題は、Nginx が無効なリダイレクトをブラウザに返すことです。代わり/be/console/customer
に を返します/be/be/console/customer
。サーブレット パスが URL に 2 回追加されます。
その 2 番目の「ある」をどのように削除できますか?
ありがとう。
Nginx の設定:
server {
listen 443 ssl;
server_name localhost;
ssl on;
ssl_certificate C:\jc\\nginx\\tc\selfsigned.cer;
ssl_certificate_key C:\jc\\nginx\\tc\private.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_redirect off;
proxy_pass https://<some ip>:9443;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location ~ /.+ {
proxy_redirect off;
proxy_pass https://<some ip>:9443;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
server {
listen 80;
server_name localhost;
access_log logs/access.log;
error_log logs/error.log;
location / {
proxy_redirect off;
#server_name_in_redirect off;
proxy_pass http://<some ip>:9080;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location ~ /.+ {
proxy_redirect off;
proxy_pass http://<some ip>:9080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}