0

パス「be」でWebアプリケーションを実行しているTomcat 6があります。ログイン処理にはSpringセキュリティを利用しています。ログインURLは/console/login、ログイン後のリダイレクト先/console/customerです。URLには https を使用し、loginURL には 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;
    }
}
4

1 に答える 1

0

この構成は本番環境で機能しています。

location /demo/ {
    proxy_pass  http://localhost:8080;
    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_pass_request_headers on;

    client_max_body_size       10m;
    client_body_buffer_size    128k;

    proxy_connect_timeout      90;
    proxy_send_timeout         90;
    proxy_read_timeout         90;

    proxy_buffer_size          4k;
    proxy_buffers              4 32k;
    proxy_busy_buffers_size    64k;
    proxy_temp_file_write_size 64k;
}
于 2012-06-16T22:21:36.277 に答える