NginX is a blazing fast web server with native load balancing .. considering it yet?
February 24, 2017

NginX is a blazing fast web server with native load balancing .. considering it yet?

Craig Nash | TrustRadius Reviewer
Score 9 out of 10
Vetted Review
Verified User

Overall Satisfaction with Nginx

Nginx is my default go-to web server for all Linux web servers (LEMP Stacks) that I currently deploy. I use NginX primarily as one of several pieces of a custom-designed web-server stack in conjunction with Ubuntu or CentOS, Percona XtraDB, and HHVM with PHP7-FPM failover, which is used to power PHP based websites (such as WordPress) which I deploy on entry-level compute packages provided by industry standard cloud services (AWS, Google, BlueMix, Digital Ocean) for our web-design clients. My primary goal with these servers is to provide our clients with their own managed, in-house hosting solution with more power than a standard hosting company can provide, but at a similar recurring cost bracket. Nginx was my choice, as it was designed specifically to win the C10k challenge, which was a challenge to create a web server capable of handling 10,000 simultaneous connections on a single server (which was successful). The biggest challenge I face is designing a stack that can handle a potentially heavy connection load while deployed on low-spec, shared-resource, sub-$20 virtual servers, while avoiding the expensive, constant need for computing resource increases. These challenges require a web server than can handle 1 or 1,000 connections on the initial specs, without an increase in resources, which Nginx was able to accomplish beyond my expectations, allowing me to provide similar and sometimes equal performance on virtual servers as that of higher-cost, WordPress specific hosts, such as WP Engine.
  • Nginx's best feature is what it was designed for in the first place, providing a high amount of simultaneous connections with less hardware resources. NginX is at minimum, twice as fast as Apache with static requests, and equal to Apache with PHP requests.
  • Nginx was created appr. 5 years after Apache, giving it the benefit of Apache's hind-sight, which has allowed NginX to be designed to better handle, or simply bypass and hand-off processes to better equipped software.
  • NginX includes quite a few very useful performance enhancing tools built in, such as advanced caching techniques (converting proxied dynamic content to static content for faster caching), native reverse proxy support, and best of all, built-in load balancing that is very easy to use.
  • The NginX setup and deployment is very easy, as the entire configuration is located in 2 files, consisting of a general server config, and a site-specific config for virtual hosts, allowing the greenest of Linux admins to easily deploy a web server.
  • Even though Nginx is the 2nd most used web server, it is rarely recognized by anyone outside of an IT field that uses it directly. This makes it a very hard sell, especially within start-up companies (a great place for NginX) relying upon VC funding, where brand recognition of the providers/manufacturers used in your IT environment can be a factor in funding.
  • Due to being less known, NginX does lack on advanced community support along with modules and add-ons when compared to Apache, luckily the community support available is generally more than enough. The same goes for locating experienced NginX administrators, but again, the learning curve is very small. allowing staff to be adequately trained in a short amount of time.
  • Due to the first point I made, a lot of software does not come with pre-configs for NginX
  • NginX has not only boosted my clients ROI, but has also boosted my sales and increased my client base, by allowing me to offer an alternative hosting solution that has the capabilities and performance of a high-end host at the cost of a low-end cookie cutter host.
  • NginX has allowed me to provide high availability server clusters at no additional cost due to it's native load balancing capabilities.
  • I have been able to gain more customers via references by providing a high stable and fast server environment.
Nginx is one of the top three web servers and sits in the second position in terms of the amount of servers deployed. The main competition comes from Apache and Apache-based forks on Linux based servers, and less-so from Microsoft IIS on Windows based servers. As stated earlier, a web server is really a "per project" decision, and the server that is best for one project might not be any good for a different project. However, I personally recommend that NginX should deserve a serious consideration for every project, as it continues to become faster, and more capable with each release.
Nginx, like all server systems, is not always the perfect option for every task, though it is definitely high on the list. Nginx works best with static content, such as images, text, HTML code, etc., but has little to no native support for dynamic content, and relies on sending the content to third party processors, such as HHVM or PHP-FPM in the case of PHP. The hand-off of the process to a different server results in a longer processing time, bringing NginX to an "even" score compared to Apache, in terms of performance as it pertains to dynamic content. Nginx is, in my opinion, the obvious choice, having a performance increase of 2-3 times over Apache when serving static content, and comparable performance to Apache when serving dynamic content, while having native support for additional performance tools, such as caching, proxies, and load balancing. However, each server does have different ways of serving information (E.G. NginX does not use .htacces for directory specific configs) and should always be thoroughly researched as it pertains to your individual project prior to making a final decision.