Scalability is the main reason. Although Thin can perform SSL, serve static files, and handle large responses to slow clients, Nginx is best suited for any given processor and memory size. Even better, Nginx can do all this transparently so that the application does not implement anything that could benefit. It is also a decent load balancer.
Once your application scales beyond one machine, you still need something like Nginx, and there is no harm in its implementation from the very beginning. Even if your application does not need to be scaled, there are other reasons for using Nginx - especially if you use more than one web application on the same computer or if the application is modular.
source
share