Nginx, pronounced like “engine-ex”, is an open-source web server that, since its initial success as a web server, is now also used as a reverse proxy, HTTP cache, and load balancer.
Some high-profile companies using Nginx include Autodesk, Atlassian, Intuit, T-Mobile, GitLab, DuckDuckGo, Microsoft, IBM, Google, Adobe, Salesforce, VMWare, Xerox, LinkedIn, Cisco, Facebook, Target, Citrix Systems, Twitter, Apple, Intel,Google, Netflix, Adobe, Cloudflare, WordPress.com and many more (source).
was originally created by Igor Sysoev, with its first public release in October 2004. Igor initially conceived the software as an answer to the C10k problem, which is a problem regarding the performance issue of handling 10,000 concurrent connections.
How does NGINX work?
Before learning more about NGINX, let’s take a look at how a web server works. When someone makes a request to open a webpage, the browser contacts the server of that website. Then, the server looks for the requested files for the page and sends it to the browser. This is only the simplest kind of request.
The example above is also considered as a single thread. Traditional web servers create a single thread for every request, but NGINX does not work that way. As stated before, NGINX performs with an asynchronous, event-driven architecture. It means that similar threads are managed under one worker process, and each worker process contains smaller units called worker connections. This whole unit is then responsible for handling request threads. Worker connections deliver the requests to a worker process, which will also send it to the master process. Finally, the master process provides the result of those requests.
That may sound simple, but one worker connection can take care of up to 1024 similar requests. Because of that, NGINX can process thousands of requests without any difficulties. It is also the reason why NGINX became excellent for busy websites like e-commerce, search engines, and cloud storage.
NGINX vs Apache
Among popular web servers, Apache is one of the main rivals for NGINX. It has been around since the 90s and has a large user community as well. If you are curious about which web server is best for your needs, take a look at this brief and informative comparison.
- OS support
Compatibility is one of the little details you should consider when choosing software. Both NGINX and Apache can run on many operating systems that support the Unix system. Unfortunately, NGINX’s performance on Windows is not as great as on other platforms.
- User support
Users, from first-timers to professionals, always need a good community that can help when they face problems. While both NGINX and Apache have mailing support and a Stack Overflow forum, Apache lacks support from its company, the Apache Foundation.
NGINX can simultaneously run 1000 connections of static content two times faster than Apache and uses a little less memory. When compared for their performance on running dynamic content, however, both have the same speed. NGINX is a better choice for those who have a more static website.
How to Check If You’re Running Nginx or Apache
On most websites, you can simply check the
server HTTP header to see if it says Nginx or Apache. You can see HTTP headers by launching the network tab in Chrome Devtools. Or you can check headers in a tool like Pingdom or GTmetrix.
However, the HTTP header might not always reveal the underlying web server. For example, if your WordPress site is behind a proxy service such as Cloudflare, the
server HTTP header will then say cloudflare instead.
In this intro to, we covered a brief history of the NGINX server, how it came to be, its place within the server landscape and also the benefits of NGINX over Apache. While both types of servers are powerful in their own right, it’s important to recognize specific use-case scenarios so developers and administrators can be better equipped when making infrastructure decisions.