Your problem isn't with the hostname, it's with the location block and filename.
In terms of location blocks, you can do a case insensitive match with this operator ~*
Most filesystems are case sensitive, so if the file you are serving is real... you're likely to have an issue.
most people do something like this:
- ensure everything is lowercase
- use a try_files files directive to fail onto a php script that simply redirects to an entirely lowercase url
there's a 3rd party library that can do lowsercase string conversions ( http://wiki.nginx.org/3rdPartyModules )