Why MaxCDN Uses NGINX to Deliver Your Content

This is a guest post by our friends at MaxCDN, and was originally posted on their blog.

NGINX is a high performance web server, load balancer, and proxy that our CDN network uses to deliver our customers’ content as fast as possible.

In the past few years, more high-traffic websites have started using NGINX as their high performance server. Basically, the popularity Apache started losing in 2011 has been picked up by NGINX, making it today’s most popular web server for the top 1,000 busiest websites. NGINX was also growing steadily at 2% when Netcraft conducted its August 2014 NGINX study.

Here’s an illustration of the study’s main findings:

Market share of web servers for top million busiest websites.

We don’t just use NGINX because it’s popular, though. We use it because it’s event‑driven, effectively handles large traffic spikes, and helps us scale our network. It also helps us make cool $#!+ and offer next‑gen performance features to our customers.

Key Features that Make NGINX Cool

Key components of NGINX include:

  • Multiple protocol support (HTTP, HTTPS, WebSocket, IMAP, POP3, SMTP)
  • SSL termination (TLSv1.1/TLSv1.2/SSL/SNI/PFS/PCI‑DSS and OCSP stapling)
  • HTTP video streaming using MP4/FLV/HDS/HLS
  • Caching static and dynamic content
  • Content compression
  • Header manipulation
  • Request filtering
  • Extended monitoring and logging
  • Upgrades without downtime using live binaries
  • Graceful restart with nonstop request processing
  • Complete reverse proxy and load balancer

These components team up to power our network and quickly deliver all the content cached on it. They also complement all the NGINX awesomeness mentioned below.

Rock-Solid Architecture

NGINX and Apache are the most used open source web servers. However, for a long time, system administrators have always used Apache as the default web server for their online projects. This became a problem though when they were working on projects that needed to handle big traffic. Apache is a solid server, but isn’t necessarily good for handling tons of traffic efficiently.

This is where NGINX rises to power though. Using its advanced architecture illustrated below, NGINX outperforms Apache in terms of RAM, CPU, and number of requests served. It is also event‑driven unlike traditional servers. This means it doesn’t need to spawn new processes or threads for each served request, resulting in lower levels of memory usage.

Diagram of NGINX architecture.
Image source: Architecture of Open Source Applications

Open Source

NGINX now ranks as the second most used open source web server. It’s also great for all kinds of operating systems like Linux, even Windows. Without a doubt, it’s a smart choice for developers from all platforms, and we especially love it because of our dedication to open source.

Outstanding Performance

RAM and CPU usage are incredibly small given the tons of content this beast can handle. Videos, images, even dynamic pages can be served without any out‑of‑the‑box tuning. It’s fair to say that NGINX offers 3x better performance than traditional servers.

Highly Scalable

Native built‑in load balancing and proxy capabilities, plus the way its core was designed, makes it perfect for scalability. Because scalability is an essential part of our CDN (seen our latest #MaxScale post?), it’s much easier to bring our CDN to scale with NGINX on our side.

Extended Documentation

If you have any questions about how to use NGINX, how to install it, or how to configure it, there’s a big community behind the server that can help you get the answers to your most pressing questions:

Want to Learn More?

Whitepaper: How MaxCDN built a world-class CDN using NGINX

See how MaxCDN and NGINX help you deliver your content as fast as possible – download our whitepaper. It shows you how we brought our CDN to scale and became one of the fastest CDNs in the world.

Cover image
Free O'Reilly Ebook
Your guide to everything NGINX