この記事の内容は不正確なので、別の記事をご覧ください
リクエストURIが複数のlocation設定にマッチしても適用されるものは1つだけです。適用の優先順位は
- 完全一致(=)
- 前方一致(^~あり、複数マッチした時は一番パスが長いもの)
- 正規表現(~または*~ 複数マッチする場合は一番上のもの)
- 前方一致(^~なし、複数マッチした時は一番パスが長いもの)
=や^~でマッチした場合はその時点でマッチング処理を終了するそうです。
わずかでも軽くしたいなら正規表現を避けるといいのかもしれません。たとえば画像ファイルを全て /img 以下に設置しているのであれば
location ~* .(gif|jpg|png)$ { access_log off; }
よりも前方一致マッチングを使って
location ^~ /img/ { access_log off; }
とした方が、わずかながら速くなるかもしれないです。ただ、ディレクトリにも適用されてしまうのが欠点。
また、トップページへのアクセスが非常に多いならば、他のlocation設定とのマッチングを処理をキャンセルするために、
location = / { }
と書いておくといいらしいです。これは公式のドキュメントにも載っています。
By using the "=" prefix we define the exact match between request URI and location. When matched search stops immediately. E.g., if the request "/" occurs frequently, using "location = /" will speed up processing of this request a bit as search will stop after first comparison.
ベンチ取ったわけではないので、どこまで効果があるのか分かりませんが、負荷をかなり気にするサイトでなければ不要でしょう。もっとも、アクセス負荷に気を使わなければならないので、apacheではなくnginxを使用しているのかもしれませんが…