Due to some reason I want wordpress blog to be located on a separate ec2 instance which is also running nginx. But I don't want to change the url to subdomain like blog.winni.in, is there any way to do this? By which I can run blog on separate ec2 instance but keep using url as winni.in/blog?
You can consider using Nginx as a Reverse proxy for Tomcat & wordpress.
Add a seperate location tag for /blog/ & proxy pass that traffic to your new wordpress ec2 server. This will make sure that your URL stays at http://winni.in/blog/ & configure siteurl in wordpress to be http://winni.in and your nginx server's hosts file needs to make below entry