created: 2022-03-03T09:23:26.000Z

nginx の try_files でよくやる設定の意味

こんな設定をした場合の挙動について。

server {
  try_files $uri @proxy;
  location @proxy {
    proxy_pass http://app;
    ...
  }
}
  • $uri はnginx側で設定される変数で、リクエストされたURLが入っている
  • try_files $uri @proxy
    1. $uri に静的ファイルが存在するなら、それを返す
    2. 存在しないなら、location @proxy 配下の設定にしたがって処理する

@proxy

  • なんらかの変数のように見える @proxy はファイルがなかった場合の internal redirect 先のことだった
  • これは location @proxy という指定と組み合わせて使うと「該当の静的ファイルがなかったら http://app に proxy する」という設定になる

参考