2016-04-28 9 views
0

この問題についていくつか検索しましたが、これに類似した他の投稿を見つけましたが、解決策はありませんでした。Nginx proxy_passがスラッシュなしで動作しない

proxy_passルールが含まれているNginx設定にlocationというエントリがありますが、URLに後続のスラッシュを追加した場合にのみ動作するようです。ここで

は場所スタンザだ

location /webApp { 
     proxy_pass   https://webapp.service.consul/webApp; 
     proxy_set_header Host webapp.service.consul; 
     proxy_intercept_errors on; 
    } 

私は(末尾のスラッシュで)curlを使用して/webApp/に出かけるときは、それが正常に動作し、見ることができる - と期待通りクッキーが設定されています

MacBook-Pro:~ $ curl -I https://example.com/webApp/ 
HTTP/1.1 302 Found 
Server: nginx/1.9.11 
Date: Thu, 28 Apr 2016 14:45:55 GMT 
Content-Length: 0 
Connection: keep-alive 
Set-Cookie: JSESSIONID=440B8D729469BBD80FC92796754D9475; Path=/providerApp/; HttpOnly 
Location: http://webapp.service.consul/webApp/login.do;jsessionid=440B8D729469BBD80FC92796754D9475 

しかし、私は/webApp(最後はスラッシュを指定しない)に出て行くとき、私は302 Foundを得るが、私は最後のスラッシュで行ったように私は/webApp/login.doページにリダイレクトされません。

私は書き換えルールを追加しようとしている
MacBook-Pro:~$ curl -I https://example.com/webApp 
HTTP/1.1 302 Found 
Server: nginx/1.9.11 
Date: Thu, 28 Apr 2016 14:48:44 GMT 
Connection: keep-alive 
Location: http://webapp.service.consul/webApp/ 

、のようなもの:

rewrite ^(.*[^/])$ $1/ permanent;

しかし、違いを確認していないようです。これは前に働いていたし、私はこの場所のスタンザを本当に混乱させていないので、私はそれが私の他の場所のいずれかと関係があるのだろうかと思っています。

ヒント?

+0

は、私はあなたがあなたの領事アプリ –

+0

@Alexey、何を修正する必要がありますねもしかして?領事アプリは、スラッシュを追加するとき(またはNginxを完全にバイパスするとき)にうまく動作します。 – cookandy

+0

このリダイレクトは、nginxではなく、領事によって発行されました。ところで、完全なnginxの設定を表示すると、私は理解できません本当にリダイレクト 'webapp.service.consul'ですか? –

答えて

1

あなたが実際WAYは、それが働いていないている指定されていませんでしたが、それはthe proxy_redirect directiveによって修正可能である必要があり、問題のように聞こえます。

proxy_redirect http://webapp.service.consul/webApp/ http://example.com/webApp/ 

(ただし、最善の解決策は、単にホスト名が正しく設定ファイルの残りの部分で指定されていることを確認することかもしれません。)

関連する問題