「location /」とNginxのデフォルトのサーバーブロック値の違い

「location /」とNginxのデフォルトのサーバーブロック値の違い

私の理解が正しければ、これはすべての潜在的な URI に一致し、より具体的な URI を持つ場所との戦いに「負ける」ことになるので、を定義する意味は何でしょうかlocation / { }。 を定義する代わりに、すべてのデフォルト値をサーバー ブロックに直接配置できるというのが私の考えですlocation / { }

したがって、もし私が正しければ、これは何の役にも立ちません。

server {
   root /www/html;
   location / {
      root /www/html;
   }

}

PS: 私は nginx についてはまだ初心者なので、質問をより有用で見つけやすいものにするために、もっと良い言い回しがあれば遠慮なく教えてください。

答え1

おっしゃる通り、あなたの特定の例は役に立ちません。しかし、サーバーレベルでは機能しないnginxディレクティブはたくさんあります。

例えば:

server {
    proxy_pass http://localhost:8080;
}

^ これは機能しません。v
これは機能します。

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

サーバー レベルのディレクティブはデフォルト値です。サーバー レベルでのみ機能するディレクティブや、ロケーション レベルでのみ機能するディレクティブがあります。

これらは根本的に異なる 2 つの事柄ですが、あなたの例は同じ結果をもたらすだけです。

関連情報