Web servers
There are a number of web-server technologies available that could be used for serving up your application on the internet. We have researched a number of them and have a preference for low footprint, high-performance options. The options that we use for the majority of our projects are Apache and Nginx.
Apache is still the leading open-source web-server in use today, and serves many of our existing portfolios of work. It provides robust and predictable performance, although has lost ground to newer, niche servers when serving content like Ruby on Rails as it requires larger memory reserves and therefore more powerful servers.
Nginx is a small-footprint, high-performance web-server which doesn’t consume large amounts of memory. It’s fast, built to scale, easy to configure, reliable and what we’ve chosen to run a large portion of our Ruby on Rails projects. Where most web-servers use threads to handle requests, Nginx uses an event-driven asynchronous architecture. This architecture uses small, but more importantly, predictable amounts of memory under load.
Ultimately we will choose the best technology to handle your application but we have seen that the Apache and Nginx are both more than suitable for the vast majority of web-server applications.