Read use cases for deploying NGINX as a high-performance web server. NGINX is open-source software which can be configured to act as a web server, proxy server, load balancer, and more. Learn how NGINX can be set up as a high-performance web server for high-demand websites and web applications.
Use Case: High Performance Web Server
The user in the following scenarios is the webmaster and systems administrator for a popular website which receives high amounts of traffic. Website visitors are beginning to experience poor website response times, particularly when traffic spikes during peak times.
Scenario 1: Concurrent Traffic
NGINX was designed to solve the "C10K problem." This refers to the upper limit of traffic which web servers at the time (1999) were able to handle: 10,000 concurrent connections.
The Apache web server spawns new processes and threads to handle each incoming connection. NGINX is an event-based web server, which means that it does not need to spawn a new thread or process for each request. Instead, NGINX spawns only a few processes, each of which can handle thousands of concurrent requests.
This means that increased traffic has almost no effect on NGINX's performance. NGINX has been designed to keep memory usage low, so that increased traffic also has very little increased impact on the server's processing capability as a whole.
The user will see a significant improvement in traffic handling by switching to NGINX as a web server.
Scenario 2: Response Time
Independent of the issue of traffic spikes, the user would like to improve website response and page loading times overall.
The NGINX project is dedicated to making NGINX the fastest web server in production. NGINX has consistently beat Apache and other web servers in web performance benchmark tests.
Although other web servers can be tuned to provide better response time and faster page loads, NGINX provides industry-leading fast website response times "out of the box."
The user will see a measurable improvement in website response times by using NGINX as a web server.
Scenario 3: Content Caching
After improving website performance both during high traffic times and overall, the user wonders if the website's performance could be tuned to provide even faster response times.
NGINX can be configured to cache content received from other servers. This is typically deployed by using NGINX as a proxy server which fetches dynamic content from applications. NGINX can also be put in front of a standard web server (like Apache) and cache static HTML files.
In both situations, caching content can lead to a significant increase in website performance.