この問題についていくつか検索しましたが、これに類似した他の投稿を見つけましたが、解決策はありませんでした。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;
しかし、違いを確認していないようです。これは前に働いていたし、私はこの場所のスタンザを本当に混乱させていないので、私はそれが私の他の場所のいずれかと関係があるのだろうかと思っています。
ヒント?
は、私はあなたがあなたの領事アプリ –
@Alexey、何を修正する必要がありますねもしかして?領事アプリは、スラッシュを追加するとき(またはNginxを完全にバイパスするとき)にうまく動作します。 – cookandy
このリダイレクトは、nginxではなく、領事によって発行されました。ところで、完全なnginxの設定を表示すると、私は理解できません本当にリダイレクト 'webapp.service.consul'ですか? –