最初にサーバー構成を投稿します:
リーリー公式の位置検索パスの優先順位とアルゴリズムの説明は次のとおりです:
指定されたリクエストに一致する位置を見つけるために、nginx は最初にチェックします
プレフィックス文字列を使用して定義された場所 (プレフィックスの場所)。 それらの中で、一致するプレフィックスが最も長い場所が選択され、
次に、
の順序で正規表現がチェックされます。 構成ファイル内のそれらの外観。 式は最初の一致と、対応する
で終了します。 設定が使用されています。正規表現との一致が見つからない場合は、
先ほど記憶したプレフィックスの場所の設定は
です。 使用済み。###
私の理解によれば、Nginx が検索するときのアルゴリズムは次のようになります。
リクエストのプレフィックスに従って場所を検索し、最も長く共通するプレフィックスが一致するものを探します (= 修飾子がある場合は場所が直接一致し、^~ 修飾子がある場合は場所が直接使用されます)。最も長く一致する場所。
構成順序で通常の一致を検索し続けます。一致するものがあれば、最初に一致した場所に直接一致し、それ以外の場合は通常の最長の場所を使用します。
と一致するはずです。 1 は正しいですが、常に 3 と一致します。- 言い換えれば、私の設定によれば、ブラウザが /favicon.ico をリクエストすると、それは直接かつ正確に
ここにいる皆さんに聞きたいのですが、Nginx の場所について私の理解にズレはありませんか?では、なぜ私の構成がこのような結果になるのでしょうか?
元の投稿者の方法に従って設定した後、ここで #1 に到達できます。
おそらく CDN キャッシュの問題だと思います。作成者は他のファイルを書き換えたり、CDN のない環境で試したりすることができます。