ifディレクティブはlocationコンテキストで使用すると、予測不可能な挙動を引き起こすことがあるから、使用は避けろ、とのことらしい。

参考

If is Evil… when used in location context | NGINX