Common Server Setups For Your Web App
If you are just starting, you should have the simplest setup - everything on one server - and scale it only when it becomes necessary. Premature scalability adds complexity and slows down your iterations.<p>My setups usually consist of an nginx serving static content and proxying applications requests (doing gzip, etc). The data tier is initially collapsed into the application as described in <a href="http://www.underengineering.com/2014/05/22/DIY-NoSql/" rel="nofollow">http://www.underengineering.com/2014/05/22/DIY-NoSql/</a> This architecture allows very fast iterations while providing enough performance headroom; it can serve 10k simple (CRUD) http requests per second on a single core.