nginx は前方一致より先に正規表現 location を処理しますか?
いいえ——先に調べるのは前方一致ですが、マッチする正規表現があればそちらが勝ちます。 nginx はまずすべての前方一致 location を調べ、最長のマッチを覚えます。そのうえで、ファイルに書かれた順に正規表現 location を評価し、最初にマッチしたものが勝ちます。どの正規表現もマッチしなければ、覚えておいた前方一致 location が使われます。唯一の例外が ^~ で、最長マッチの前方一致がこれを持っている場合、正規表現フェーズはまるごとスキップされます。