I don’t use nginx muchmyself, so am no expert on it, but location / is going to match http://myapp.com … and that is set to be served by nginx directly. Try getting replacing the location / block with the contents of the location @proxy block.
(I used haproxy myself for these things, so I apologize in advance if the above is not correct; working off of my poor memory of how nginx config works…)
The try_files inside the default location / block will see if a local filename exists, and if so serve it, else it falls back to the proxy, so that is fine.
Given that, the configuration looks correct on an immediate guess without seeing your error logs, given that your proxy_params config is correct (which is not shown either, but assuming it is defaulted). Nothing in your error logs? No file being hosted as a fallback? Etc…?
Also, what do you mean by default page? If no filename existed at the $URI and the proxy did not return a success then it should fail pretty hard since you did not add a =404 handler at the end or so. If you are getting a page it will be coming from somewhere…