2016-09-01 10 views
1

最後のスラッシュを削除すると無限ループが発生する理由を誰もが説明できますか? Chromeブラウザでは、それはhttp://localhost//NginX Proxy Pass無限ループ

location/{ 
    proxy_pass http://localhost:8080/tracker; // infinite loop 
} 

location/{ 
    proxy_pass http://localhost:8080/tracker/; // not infinite loop 
} 

を結果しかし、私は場所のディレクティブで接尾辞を追加する場合、それは結構です。

location /tracker { 
    proxy_pass http://localhost:8080/tracker; // not infinite loop 
} 

location /tracker { 
    proxy_pass http://localhost:8080/tracker/; // not infinite loop 
} 

答えて

3

の場合:/trackerは、(例えば)上流のディレクトリであった場合

location/{ 
    proxy_pass http://localhost:8080/tracker; 
} 

302リダイレクトループを生成します。アップストリームは/を追加するために302リダイレクトを発行する可能性があります。proxy_passは再び削除されます。

URIのエイリアスがあります。そのため、場所と宛先の両方が/で終わるか、どちらも末尾が/である必要があります。

+0

あなたはどういう意味ですか上流ディレクトリの? –

+0

上流側は 'localhost:8080'を意味します。あなたは 'localhost:8080'でリッスンしているアプリケーションを記述していませんが、'/tracker'から '/ tracker /'にリダイレクトされているものがあります。 –

+0

プレーンなHTMLを返す単純なSpring Frameworkアプリケーションです –

1

「トラッカーアプリ」にはスラッシュが付いていますが、ほとんどのフレームワークではこのようなSEOの機能があります。

とにかくアクセスログで追跡できます。

+0

後ろにスラッシュがあるので、マップされたすべてのURLを後続のスラッシュの有無に合わせて標準化する必要がありますか? –

+0

リンクの内容によって異なりますが、Googleウェブマスターツール(https://webmasters.googleblog.com/2010/04/to-slash-or-not-to-slash.html)から標準を確認できます – Kaylas