Using logs and and built-in support for debugging is definitely the most reasonable way. If you are doing some quick routing debugging at early stages and want to interact through the browser/client only, using the return 4xx "text"; directive may also give you the answer you want with very little effort. For example,
http { server { listen 80; server_name mydomain.net; return 404 "mydomain 80 route"; } server { listen 80 default_server; return 404 "default 80 route"; } }
The text in the returned webpage will tell you which server
block your request triggered.