nginxでtry_filesする際に=xxxがあるとrailsアプリにリダイレクトさ

nginxのサイト設定で以下のように書くと

location /zzz {
  alias ...;
  try_files $uri @rails_unicorn =404;
}

location @rails_unicorn {

}

@rails_unicornの設定が正しくても404ページの表示に移行してしまうようだ.
そういうものなのか,別の原因があるのかは不明.どうしてこういう挙動なのだろう?

後,同じサーバの場合はlocationは同じファイルに書いたほうが良いっぽい,
みたいな知見も得た.これも何かよくわかってない感じだ.
できればサイトごとにファイルを分けたい気分だけど,例えば

# a.setting
location /
{
}
# b.setting
location /foo
{
}

という2つのファイルがある時, /fooの方には一切入っていかずにa.settingの/以下のlocation設定ですべて処理されてしまう.
同じ階層のディレクトリ名同士なら別ファイルにすることは可能なのだろうか?(だとすれば ある階層下の設定は1つにまとめる,という方向がよさそうな気がする)